我有一个与父元素绑定的绑定。我如何为绑定中的DataContext提供数据类型,以便Intellisense可以解析绑定的属性?
在运行时,绑定正常工作。因此,我有以下XAML结构:
<TabControl Name="TabDynamic"
ItemsSource="{Binding TabItems, Mode=OneWay}" ...>
<TabControl.Resources>
<DataTemplate x:Key="TabHeader" DataType="TabItem">
<DockPanel>
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Header}" />
<Button Command="{Binding ElementName=TabDynamic, Path=DataContext.DeleteTabCommand}"
CommandParameter="{Binding ElementName=TabDynamic, Path=DataContext.TabItems/}">
<Image Source="{DynamicResource DeleteImg}" Height="11" Width="11"></Image>
</Button>
</DockPanel>
</DataTemplate>
<DataTemplate x:Key="TabContent" DataType="viewModels:ConnectionInfoVM">
<views:BufferViewerControl/>
</DataTemplate>
</TabControl.Resources>
</TabControl>
DataContext 的数据类型是 "viewModels:ConnectionInfoVM"。 Intellisense 现在会在 DataContext 上同时下划线显示两个属性(即 DeleteTabCommand 和 TabItems)。
我已经尝试在 Button
元素中使用设计时数据上下文定义 "d:DataContext",如下所示:
d:DataContext="{d:DesignInstance viewModels:ConnectionInfosVM}"
但这并不会改变智能感知警告。
我还尝试将DataTemplate上的DataType定义为"viewModels:ConnectionInfosVM",就像我对content-template所做的那样,但是这也不能改变智能感知警告(而且我想这可能是错误的,因为元素的数据类型确实是TabItem)。
另一个尝试是通过在Button
元素定义中添加以下内容来定义DataContext:
<Button.DataContext>
<viewModels:ConnectionInfosVM/>
</Button.DataContext>
但是这也不能消除警告。