【问题标题】:WPF MVVM Binding Checkbox.IsChecked to a named item in a Dictionary<string, bool>WPF MVVM 绑定 Checkbox.IsChecked 到 Dictionary<string, bool> 中的命名项
【发布时间】:2009-04-14 03:00:00
【问题描述】:

我有一组复选框,它们都代表相同类型的不同选择(例如,它们都是不同的文件类型)。我觉得将每个复选框绑定到 ViewModel 中的单个属性是过大的,我更愿意将它们全部绑定到一个集合并使用绑定语法将每个复选框按键绑定到集合中的特定项目。我正在尝试坚持 MVVM 模式,所以我不想变得懒惰并处理 Checked 事件或类似的事情。

有没有办法使用 WPF 绑定语法来表达集合中的路径或键?例如,如果我在 ViewModel 中公开一个名为 FileTypes 的Dictionary&lt;string, bool&gt; 作为公共属性,有没有办法将其中一个复选框绑定到 FileTypes["aspx"]?如果我有像Dictionary&lt;string, Dictionary&lt;string, int&gt;&gt; 这样更复杂的数据结构呢?

【问题讨论】:

    标签: c# .net wpf mvvm binding-expressions


    【解决方案1】:

    你几乎成功了——只需在 indexer 参数周围加上引号:

    {Binding FileTypes[aspx]}
    

    更复杂的数据结构只需要一系列索引器,例如

    {Binding Foo[aspx][Bar]}
    

    顺便说一句,MSDN 中有一个很好的资源,在 WPF > Data > Data Binding > Binding Declarations Overview 下——向下滚动到“Binding Path Syntax”,查看可以在其中使用的符号和约定的摘要绑定路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多