我有一个 ObservableCollection、一个 ICollectionView、一个过滤器和两个文本框。如果我仅对一个文本框使用过滤器,则效果很好。如果我添加另一个文本框并将过滤器绑定到第二个 TB,则过滤会很困难。
我用两个过滤器(不同的名称 - 相同的功能)尝试过,但这也不起作用。
我认为这可能与 ObservableCollection 有关。
这是我的过滤器:
this.AllUsers.Filter = i =>
{
if (string.IsNullOrEmpty(this.SearchUsername)) return true;
User u = i as User;
return u.Name.StartsWith(this.SearchUsername);
};
Run Code Online (Sandbox Code Playgroud)
我的 ICollectionView 包含来自 ObservableCollection 的数据:
public ICollectionView AllUsers
{
get
{
return CollectionViewSource.GetDefaultView(UserSource);
}
}
Run Code Online (Sandbox Code Playgroud)
和我的 ObservableCollection:
public ObservableCollection<User> UserSource
{
get
{
return _UserSource;
}
set
{
_UserSource = value; OnPropertyChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
AllUsers.Refresh();我正在使用字符串属性 SearchUsername更新视图。
ObservableCollection 绑定到 ListBox,字符串 Property 绑定到 TextBox。
第二个文本框也是如此。相同的 ObservableCollection 绑定到不同的 ListBox,字符串属性(UserName)绑定到第二个 TextBox。
那么有没有一种简单的方法可以解决这个问题呢?