嘴强王者

导航

wpf中treeview和ICollectionView接口实现数据过滤

    private ICollectionView _collectionView;
    private void binddata(List<obj> list)
    {
        // 创建CollectionViewSource并绑定到TreeView
        CollectionViewSource collectionViewSource = new CollectionViewSource
        {
            Source = list
        };
        Treeview.ItemsSource = collectionViewSource.View;
        _collectionView = collectionViewSource.View;
    }
//搜索文本框去
private void TextBox_Changed(object sender, RoutedEventArgs e) { string filterText = Keyword.Text; // 设置过滤方法 _collectionView.Filter = item => { obj category = (obj )item; bool isfilter = false; if (category.children.Count != 0) { isfilter = category.children.Any(x => x.label.Contains(filterText)); } if (category.label.Contains(filterText)) { isfilter = true; }//多层级的使用两个if去过滤这个没过上一层可以过,这里可以做成递归 return isfilter; }; // 强制刷新视图 _collectionView.Refresh(); }

 

posted on 2024-03-01 13:48  嘴强王者  阅读(41)  评论(0编辑  收藏  举报