【发布时间】:2013-09-05 00:32:26
【问题描述】:
我有一个 Styles.xaml,它将许多 ResourceDictionarys 分组到 MergedDictionary 中。
我在 UserControl.Resources 中导入了 Styles.xaml
<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>
【问题讨论】:
-
它应该与您在编辑前的实施方式一致。你能分享你的 style.xaml 吗?
-
是的,第二个代码应该没问题(可能你的 Styles.xaml 本身存在问题),如果你想使用第三个代码,你需要在合并目录标签中添加第二个资源字典
-
谢谢@dnr3,您的评论解决了问题,这是样式字典中的样式有问题,所以 Styles.xaml 也有问题,这一切都没有工作,已修复,现在可以工作,谢谢大家
标签: wpf xaml dictionary resourcedictionary mergeddictionaries