15

我有一个 Styles.xaml,它将许多ResourceDictionarys 分组在一个MergedDictionary.

我在我的UserControl.Resources

<UserControl.Resources>
    <ResourceDictionary Source="Dictionaries\Styles.xaml" />
</UserControl.Resources>

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

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionaries\Styles.xaml" /> <--! Exception -->
        </ResourceDictionary.MergedDictionaries>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </ResourceDictionary>
</UserControl.Resources>

它提出了

ArgumentNullException:值不能为空。
参数名称:项目

将转换器包装在另一个内部MergedDictionary没有任何效果。
我该如何解决这个问题?
谢谢你们!


解决了

我最终想通了:在Exception.xaml 文件中提出了一个,但 Visual Studio 没有提供足够的信息来定位故障行。
以下代码确实有效。

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionaries\Styles.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </ResourceDictionary>
</UserControl.Resources>
4

1 回答 1

18

试试这个

<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>
于 2013-09-05T01:01:47.447 回答