一个更优雅的ListView重新查询

Gai*_*sei 2 wpf listview refresh

ListView每次IsChanged触发另一个控件的事件时我都需要刷新.我搜索了如何做到这一点,我看到了一个stackoverflow链接,引导我在这里

其中一个答案有效:

listView.ItemsSource = listView.ItemsSource    
Run Code Online (Sandbox Code Playgroud)

这真的是刷新我的唯一方法ListView吗?感觉有点不对劲.

And*_*mes 5

只是使它无效.

listView.InvalidateProperty(ListView.ItemsSourceProperty)
Run Code Online (Sandbox Code Playgroud)

应该这样做.

顺便说一句,我真的建议看看MVVM.它往往更强大.在这种情况下,对于MVVM应用程序,我会这样做:

XAML:

<ListView ItemsSource="{Binding MyItems}" />
Run Code Online (Sandbox Code Playgroud)

这将是我的ViewModel我绑定到:

public ObservableCollection<MyItem> MyItems
{
     get; set;
}

public void IsChangedHandler(...)
{
     ...
     this.OnPropertyChanged("MyItems");
}
Run Code Online (Sandbox Code Playgroud)