WPF MVVM绑定Checkbox.IsChecked到Dictionary<string, bool>中的一个命名项

5
我有一个复选框组,它们都代表同一类型的不同选择(例如,它们都是不同的文件类型)。个人认为将每个复选框绑定到ViewModel中的单独属性有些过度,我更喜欢将它们全部绑定到一个集合中,并使用绑定语法将每个复选框绑定到集合中的特定项(通过键)。我试图遵循MVVM模式,因此我不想变懒并处理 Checked 事件之类的东西。
在WPF绑定语法中是否有一种表达集合内路径或键的方式?例如,如果我在ViewModel中公开了一个名为FileTypes的Dictionary,那么是否有一种方法可以将其中一个复选框绑定到FileTypes["aspx"]? 如果我有一个更复杂的数据结构,例如 Dictionary>呢?
1个回答

3
你几乎做到了 -- 只需删除索引器参数周围的引号即可:
{Binding FileTypes[aspx]}

更复杂的数据结构只需要一系列的索引器,例如:
{Binding Foo[aspx][Bar]}

顺便提一下,关于这方面的好资源可以在MSDN中找到,在WPF > Data > Data Binding > Binding Declarations Overview下,向下滚动到“Binding Path Syntax”一节,可以查看绑定路径中可使用的符号和约定的概要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接