TreeView不显示CollectionViewSource

时间:2017-11-07 09:26:15

标签: c# wpf xaml

我尝试使用CollectionViewSourceTreeView。以下是代码的相关部分:

XAML(部分 - 请告诉我是否需要更多信息):

<TreeView x:Name="Projects"                               
    ItemsSource="{Binding FilteredPVMs}"
</TreeView>

CS c&#tor; tor:

public CollectionViewSource FilteredPVMs { get; protected set; }

然后初始化:

 FilteredPVMs = new CollectionViewSource() { Source = PVMs };

然后我有了过滤器:

        FilteredPVMs.View.Filter = o =>
        {
            var retVal = false;
            try
            {
                if (val != null)
                {
                    if (
                         // logic for filter...
                        )
                        retVal = true;

                    else retVal = false;
                }
                return retVal;

            }
            catch (Exception)
            {
            }

            return retVal;
        };

        FilteredPVMs.View.Refresh();
    }

我在PVM上有3个项目。调试时,我可以看到我经历了3次过滤方法(对于每个项目)。对于其中一个我得到了真实而对其他人来说它是假的。

我也看到FilteredPVMs.View.Count是1:in&#34; watch&#34; window:((System.Windows.Data.ListCollectionView)(FilteredPVMs.View))。Count = 1

所以我希望在UI中看到1个项目。但是,在用户界面中,我看不到任何项目。关于我做错了什么的任何建议?

1 个答案:

答案 0 :(得分:0)

修复XAML(Binding FilteredPVMs.View而不是Binding FilteredPVM)解决了这个问题。

<TreeView x:Name="Projects"                               
    ItemsSource="{Binding FilteredPVMs.View}"
</TreeView