WPF无法在后面的代码中找到XAML资源

时间:2014-09-19 13:53:48

标签: c# wpf xaml

我有一个Page1.xaml,它包含一个CollectionViewSource作为这样的资源:

 <Page.Resources>

        <CollectionViewSource x:Key="MyItems" Source="{Binding Path=Products}" Filter="CollectionViewSource_Filter" >
            <CollectionViewSource.GroupDescriptions>
                <PropertyGroupDescription PropertyName="AssetCategory" />
            </CollectionViewSource.GroupDescriptions>
        </CollectionViewSource>


</Page.Resources>

我想像这样刷新CollectionViewSource:

((CollectionViewSource)FindResource("MyItems")).View.Refresh();

但FindResource(或TryFindResource)返回null,我设置了this.DataContext = this和所有绑定都有效。 有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

我在ComboBox SelectionChanged事件上调用了FindResource,并将其选定的索引设置为0.我认为combox是在资源之前加载的。我只是通过检查页面是否已加载来解决它:

 if (IsLoaded) 
 {
     ((CollectionViewSource)FindResource("MyItems")).View.Refresh();
 }