我正在构建一个 WPF 应用程序, 以行中的数据为基础, 并将数据输入到 GUI 的不同标签中。 然而, 标签直到运行时才知道, 所以我需要动态地构建一个未知的标签, 上面有我主可观测集合中不同过滤器的收集视图 。
我遇到的问题就是使用 Listcollection Views 我需要一个上游过滤器 但我不知道一个基于本地变量的动态上游方法 。 我尝试了变量捕捉, 但每次添加新标签时都会改变我所有的过滤器 。
//class variables
string currTab;
public ObservableCollection<MyData> myCollection = new ObservableCollection<myData>();
private void DataAdd(object sender, RoutedEventArgs e)
{
currTab = inputData.ToString();
ListCollectionView c = new ListCollectionView(myCollection);
c.Filter = new Predicate<object>(MyFilter);
}
public bool MyFilter(object foo)
{
if (foo).ToString() != currTab)
return false;
else
return true;
}
我也尝试使用 羊羔表达式和ICollectionView, 但收藏没有更新新值, 所以我只看到空标签 。
CollectionView c = new CollectionViewSource { Source = myCollection.Where(z => z.ToString() == tabName) }.View;
是否有办法使这两种办法都能奏效?还是有更好的办法做到这一点?