如何从Control访问MainWindow中的资源?

时间:2016-09-02 09:02:46

标签: c# wpf

我定义了一个UserControl,其中我插入了以前TabItem中提供的MainWindow内容,我这样做是为了更好地组织代码。

无论如何,我有几个使用名为GroupedItems的静态资源的TabItem,这个资源在MainWindow中可用:

<Window.Resources>
    <ResourceDictionary>     
        <CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems">
            <CollectionViewSource.GroupDescriptions>
                <PropertyGroupDescription PropertyName="MatchNation" />
                <PropertyGroupDescription PropertyName="MatchLeague" />
            </CollectionViewSource.GroupDescriptions>
        </CollectionViewSource>
    </ResourceDictionary>
</Window.Resources>

在我的掌控之中我是这样的:

<ListView Name="Playing" ItemsSource="{Binding Source={StaticResource GroupedItems}}">

但编译器无法找到资源,因为我收到此错误:

  

无法解析资源GroupedItems

这就是我在MainWindow资源中拥有此资源的原因,如何从控件中访问它?

1 个答案:

答案 0 :(得分:1)

将其移至app.xaml,然后它将可用于当前项目

<Application.Resources>
<ResourceDictionary>     
    <CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems">
        <CollectionViewSource.GroupDescriptions>
            <PropertyGroupDescription PropertyName="MatchNation" />
            <PropertyGroupDescription PropertyName="MatchLeague" />
        </CollectionViewSource.GroupDescriptions>
    </CollectionViewSource>
</ResourceDictionary>
</Application.Resources>