我有一个ListView,其DataContext设置为我的ViewModel。 ListView.ItemsSource设置为ViewModel的Collection属性。在这个ViewModel上有一个名为MyIndex的Property。在我的项目执行期间,MyIndex的值会发生变化。
我需要一种方法来访问XAML' MyIndex'从ListView的ItemTemplate中,以便我可以根据MyIndex的值更改每个ListViewItem的方面。
我不能使用TemplatedParent,然后在绑定中使用ListViewItem的.Parent属性,因为.Parent不是ListView。
这是一些伪XAML来更好地说明我的意思。
<ListView ItemsSource="ItemsCollection">
<ListView.ItemTemplate>
<ItemContainerTemplate>
<Grid Background="{Binding <some xaml to reference MyIndex Property of ListView.DataContext to use in Converter>}">
</Grid>
</ItemContainerTemplate>
</ListView.ItemTemplate>
</ListView>
&#13;
我没有WPF的经验,所以我希望这是有道理的。
非常感谢您的任何帮助。
答案 0 :(得分:2)
这应该可以解决问题。这样,您可以使用子项中父项的DataContext。
<ListView ItemsSource="ItemsCollection">
<ListView.ItemTemplate>
<ItemContainerTemplate>
<Grid Background="{Binding DataContext.MyIndex, RelativeSource={RelativeSource AncestorType=ListView}}">
</Grid>
</ItemContainerTemplate>
</ListView.ItemTemplate>
</ListView>