我有一個綁定到父元素。如何在綁定中爲DataContext提供數據類型,因此intellisense可以解析綁定的屬性?綁定工作正常,但intellisense說:無法解析類型'對象'的數據上下文中的屬性XXX
綁定在運行時正常工作。因此,我有以下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帶下劃線)。
我已經嘗試過使用設計時數據上下文定義「d:DataContext的」在Button
元素中,像這樣:
d:DataContext="{d:DesignInstance viewModels:ConnectionInfosVM}"
但這並不改變智能感知警告。
我也嘗試將DataTemplate上的DataType定義爲「viewModels:ConnectionInfosVM」,就像我爲內容模板做的那樣,但是這也不會改變智能感知警告(我猜會錯誤的,因爲元素的數據類型實際上是一個TabItem)。
另一種嘗試是通過添加定義的DataContext以下的Button
元素定義:
<Button.DataContext>
<viewModels:ConnectionInfosVM/>
</Button.DataContext>
但是,這也並不擺脫警告。
VM是否在設計時間內爲要綁定的項目生成數據? – OmegaMan
不,在設計時這個TabControl沒有數據。它稍後基於網絡通信而被填充。 – ptair
如果您刪除按鈕的內容,智能感應故障是否仍然發生?目前還不清楚錯誤發生在哪裏......如果你可以縮小到命令或內容,這可能是說。你也使用哪個版本的視覺工作室?你有沒有嘗試過最新的Blend版本,同樣的事情發生了嗎? – OmegaMan