当我在DataTemplate
部分中添加<Page.Resources>
时,在编辑设计器内部的绑定时,它会继承DataContext
的{{1}}。但是,在运行时,Page
内的元素正在使用DataTemplate
,该元素具有自己的Page
。我希望设计师在绑定时显示内部DataContext
。
DataContext
是否有d:DataContext
这样的标记?设置DataTemplates
没有任何作用。
答案 0 :(得分:5)
我发现你可以在d:DataContext
内的根元素上设置DataTemplate
。
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
<ListBox ItemsSource="{Binding People}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel d:DataContext="{d:DesignInstance Type=local:Person}">
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Age}" />
<TextBlock Text="{Binding Height}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
答案 1 :(得分:5)
我意识到这是超级旧的,但为了让它变得更好。 DataTemplates通过DataType标签有一个“DataContext”。
<DataTemplate DataType="{x:Type local:Person}">
<StackPanel>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Age}" />
<TextBlock Text="{Binding Height}" />
</StackPanel>
</DataTemplate>