wpf - 绑定到嵌套字典 - 我如何声明 DictionaryEntry 是集合/字典?
问题描述
这个问题的上下文是处理翻译。我已经设置了一个ResourceDictionary
包含其他ResourceDictionary
实例以及不同区域的相关本地化字符串的实例,以便更轻松地对它们进行分组。不同的翻译项 XAML 文件将存储在不同的语言代码文件夹中,但是对于下面的示例,它们不是必需的。
TranslationItems1.xml
<ResourceDictionary ...>
<ResourceDictionary x:Key="Group1">
<sys:String x:Key="Field1">Group1Field1</sys:String>
<sys:String x:Key="Field2">Group1Field2</sys:String>
<sys:String x:Key="Field3">Group1Field3 out</sys:String>
</ResourceDictionary>
<ResourceDictionary x:Key="Group2">
<sys:String x:Key="Field1">Group2Field1</sys:String>
<sys:String x:Key="Field2">Group2Field2</sys:String>
<sys:String x:Key="Field3">Group2Field3 out</sys:String>
</ResourceDictionary>
</ResourceDictionary>
对于我想使用这些翻译的部分,我DataContext
相应地设置和绑定。
UserControl1.xaml
<UserControl ...>
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary x:Key="Strings">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="TranslationItems1.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ResourceDictionary>
</UserControl.Resources>
<Button>
<Button.ContextMenu>
<ContextMenu DataContext="{DynamicResource Strings}">
<MenuItem Header="{Binding Path=[Group1][Field1]}" />
<MenuItem Header="{Binding Path=[Group1][Field2]}" />
<MenuItem Header="{Binding Path=[Group1][Field3]}" />
</ContextMenu>
</Button.ContextMenu>
</Button>
<Button>
<Button.ContextMenu>
<ContextMenu DataContext="{DynamicResource Strings}">
<MenuItem Header="{Binding Path=[Group2][Field1]}" />
<MenuItem Header="{Binding Path=[Group2][Field2]}" />
<MenuItem Header="{Binding Path=[Group2][Field3]}" />
</ContextMenu>
</Button.ContextMenu>
</Button>
</UserControl>
这种方法似乎工作得很好。它构建并运行,我的字符串按预期显示。
然而,IntelliSense 抱怨错误代码XLS0521
和Type 'DictionaryEntry' is not a collection.
绑定路径的状态。此错误在构建时消失,但如果我对文件进行任何后续更改,它将重新出现。
谷歌搜索该错误代码给了我多达 10 个结果。我假设发生此错误是因为它不知道Group1
并且Group2
是字典,但我不知道如何明确声明它们是通过 XAML 的。
如何在 XAML 中指定Group1
并且Group2
是字典?
解决方案
推荐阅读
- javascript - observables 是 promise 的语法糖吗?本质上它们是在引擎盖下编译的?
- python - 带有要优化的附加变量的回归
- sql - 使用 SQL 服务器 JSON_VALUE 搜索 json 数组
- php - 在 WooCommerce 订单详细信息中添加低于总额的税款
- javascript - 在 Vue 中使用 Jest Mock 测试导出的模块
- rest - 不允许使用 Airflow 实验性 API 调用方法
- javascript - 如何使用 Javascript 切换或取消按下按钮 onclick
- javascript - 我怎样才能破坏一个包含其他对象的javascript对象
- azure-active-directory - 图形 API 架构扩展不适用于用户动态组过滤器
- c++ - 如何在 Poco 中设置单个线程名称,以便在内核跟踪/ps/gdb 中进行调试?