我正在根据 Josh Smith 在http://joshsmithonwpf.wordpress.com/2007/06/12/searching-for-items-in-a-listbox的示例在列表上实现文本框过滤器。基本上,它将视图上的过滤器设置为检查搜索框中文本的委托。我像这样连接过滤器:
var pickerView = FindResource("sortedRulesView") as CollectionViewSource;
new TextSearchFilter(pickerView.View, SearchTextBox);
后来,当我刷新 ObjectDataProvider 时,过滤器丢失了。我注意到 pickerView.View 在刷新后具有不同的哈希码。数据刷新时是否重新创建了所有视图?这是否意味着每当我调用 ObjectDataProvider.Refresh() 时都应该重新附加过滤器?有没有更聪明的方法来安装这个不需要保姆的过滤器?