Проблема Silverlight ResourceDictionary - PullRequest
0 голосов
/ 27 ноября 2010

У меня есть страница 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» фактически будет переменной, которая будет установлена ​​в методе Convert конвертера reportTemplateSelector доВышеуказанные строки вызываются.

Проблема здесь в том, что ReportingResources.xaml зависит от файла ресурсов GlobResources.xaml для некоторого другого содержимого.Как сделать содержимое из GlobResources.xaml доступным для файла ReportingResources.xaml в строках кода выше?

Спасибо за ваше время ...

1 Ответ

0 голосов
/ 24 марта 2011

Вы пробовали ....

Файл ресурса может объединять другие файлы ресурсов:

<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 Разбить стили и шаблоны на разные файлыи объединить ресурсы

...