每次触发另一个控件的 IsChanged
事件时,我都需要刷新我的 ListView
。我用谷歌搜索了如何做到这一点,然后我看到了一个 stackoverflow 链接,它引导我 here
其中一个有效的答案:
listView.ItemsSource = listView.ItemsSource
这真的是刷新我的 ListView
的唯一方法吗?感觉有点不对劲。
最佳答案
只是使其无效。
listView.InvalidateProperty(ListView.ItemsSourceProperty)
应该可以了。
顺便说一句,我真的建议看看 MVVM。它往往更强大。在这种情况下,对于 MVVM 应用程序,我会这样做:
Xaml:
<ListView ItemsSource="{Binding MyItems}" />
这是我要绑定(bind)的 ViewModel:
public ObservableCollection<MyItem> MyItems
{
get; set;
}
public void IsChangedHandler(...)
{
...
this.OnPropertyChanged("MyItems");
}
关于wpf - 更优雅的ListView重新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406542/