TreeView作为DateTemplate无法显示正确的数据

时间:2013-10-23 07:27:13

标签: c# wpf listview treeview datatemplate

我有一个ListView,其DataTemplate是两行Grid,第一行是button,第二行是treeview

树视图ItemsSource绑定到List<T>中的ViewModel集合。

单击按钮时,创建列表,并显示树视图。但是如果有很多ListViewItem,当我单击第一个ListViewItem的按钮时,树视图显示正确,当我单击第二个ListViewItem中的Button时,第一个ListViewItem中的树视图将更改为与第二个ListViewItem相同的数据之一。

任何解决方案都可以帮到我吗?我希望每个treeview显示自己的数据。

1 个答案:

答案 0 :(得分:0)

问题是您在ItemsSource中创建了TreeView ViewModel的列表,并且已将TreeView中的ItemTemplate绑定到此列表List。因此,所有TreeViews绑定到同一个集合并更改它将更改所有树的ItemsSource

解决方法是在List内创建此Model,支持ListViewItem并将其绑定到TreeView。在ViewModel中,您可以更新所选模型包含的List。通过这种方式,每个项目都有自己的ItemsSource用于TreeView。