我有reports.xaml页面,我已经定义了一些本地资源。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries >
<ResourceDictionary Source="/My.Namespace;component/Resources/Converters.xaml" />
<ResourceDictionary Source="/My.Namespace;component/Resources/GlobResources.xaml" />
<ResourceDictionary Source="/My.Namespace;component/Resources/ReportingResources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
在相同的reports.xaml文件中,我有一个像这样的内容控件......
<ContentControl
Content="{Binding}"
ContentTemplate="{Binding Converter={StaticResource reportTemplateSelector}, Path=CurrReportType}"
Margin="0"
/>
现在在我的转换器中,我使用以下代码行加载ReportingResources.xaml资源文件
ResourceDictionary reportTemplate = new ResourceDictionary();
reportTemplate.Source = new Uri("/My.Namespace;component/Resources/ReportingResources.xaml", UriKind.Relative);
template = reportTemplate[Report_Style] as DataTemplate;
return template;
“Report_Style”实际上是一个变量,它将在调用上述行之前在reportTemplateSelector转换器的Convert方法中设置。
这里的问题是ReportingResources.xaml依赖于GlobResources.xaml资源文件来获取其他一些内容。如何将GlobResources.xaml中的内容提供给上面代码行中的ReportingResources.xaml文件?
感谢您的时间......
答案 0 :(得分:0)
你试过......
资源文件可以合并其他资源文件:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ResourceB.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Name="MyButtonStyle" TargetType="Button">
<Setter Property="Background" Value="red"/>
</Style>
</ResourceDictionary>
取自Silverlight 3,0 Split styles and templates into different files and merge resources