【问题标题】:Initially hide elements in ListView (uses ICollectionView and ObservableCollection)最初在 ListView 中隐藏元素(使用 ICollectionView 和 ObservableCollection)
【发布时间】:2011-02-12 11:02:19
【问题描述】:

我正在使用绑定到 ICollectionView (ListCollectionView -> ObservableCollection) 的 ListView 在加载包含数据的文件时,集合会被填充。 每个数据项都有一个布尔标志,指示它是必须显示在列表视图中还是必须隐藏。

目前我以一种丑陋的方式做到了这一点。我首先用数据填充集合(列表视图)。 用户可以看到这一点。 填充它后,我启动了一个例程,该例程过滤(ICollectionView.Filter)不匹配的项目。 此时列表视图的项目数会减少。

有没有更好的方法来实现这个?

【问题讨论】:

    标签: c# wpf listview observablecollection icollectionview


    【解决方案1】:

    只需在开始填充集合之前设置过滤器

    ObservableCollection<Foo> collection = new ObservableCollection<Foo>();
    ICollectionView view = CollectionViewSource.GetDefaultView();
    view.Filter = YourFilterMethod;
    // Fill the collection
    collection.Add(...);
    

    【讨论】:

    • 感谢您的回答。但是就不能使用一种条件吗? Listview 仅显示具有匹配条件的项目(布尔属性为真/假)
    猜你喜欢
    • 2021-04-09
    • 2020-02-12
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多