C# 如何从控件访问主窗口中可用的资源?
我定义了一个C# 如何从控件访问主窗口中可用的资源?,c#,wpf,C#,Wpf,我定义了一个UserControl,其中插入了一个TabItem内容,该内容以前在main窗口中可用,我这样做是为了更好地组织代码 无论如何,我有几个选项卡项使用名为GroupedItems的静态资源。此资源在主窗口中可用: <Window.Resources> <ResourceDictionary> <CollectionViewSource Source="{Binding Matches}" x:Key="GroupedIt
UserControl
,其中插入了一个TabItem
内容,该内容以前在main窗口中可用,我这样做是为了更好地组织代码
无论如何,我有几个选项卡项使用名为GroupedItems
的静态资源。此资源在主窗口中可用:
<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
这就是为什么我在主窗口中有此资源的原因,我如何从控件访问它?将其移动到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>
我认为最好通过另一个绑定将资源传递给您的控件property@slawekwin如果我有x控制,我需要通过x次。我认为最好在主窗口中(在一个地方)设置resourceGroupedItems
,并从任何地方进行访问。我的意思是为控件提供一个依赖属性,并将静态字典绑定到主窗口中的所有实例。这只是一个一般性的想法,因为在访问静态资源时,错误有时会显示在XAML中。但实际上没有错误。如果已正确写入所有静态资源的名称,则清理项目并重新生成,大多数时间错误都会消失