合并的词典和本地资源

Ser*_*gio 10 wpf xaml dictionary resourcedictionary mergeddictionaries

我有一个Styles.xaml该集团很多ResourceDictionary的内线一个MergedDictionary.

我导入了Styles.xaml UserControl.Resources

<UserControl.Resources>
    <ResourceDictionary Source="Dictionaries\Styles.xaml" />
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试添加转换器时

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionaries\Styles.xaml" /> <--! Exception -->
        </ResourceDictionary.MergedDictionaries>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

它提升了

ArgumentNullException:值不能为null.
参数名称:item

将转换器包装在另一个内部MergedDictionary无效.
我怎么解决这个问题?
谢谢你们!


解决了

我最终弄清楚了:它Exception是在.xaml文件中引发的,但是Visual Studio没有提供足够的信息来找到错误的行.
以下代码确实有效.

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionaries\Styles.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

123*_*9 0 15

试试这个

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/PROJECTNAMESPACE (TestProject.Something);component/Dictionaries/Styles.xaml" /> 
        </ResourceDictionary.MergedDictionaries>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)