2009-04-14 209 views
5

我有一組複選框,它們都代表相同類型的不同選擇(對於我的示例,它們都是不同的文件類型)。我覺得將每一個綁定到ViewModel中的一個單獨的屬性是矯枉過正的,我更願意將它們全部綁定到一個集合,並使用綁定語法通過鍵將每個複選框綁定到集合中的特定項目。我試圖堅持MVVM模式,所以我不只是想懶惰,並處理Checked事件或類似的東西。WPF MVVM綁定Checkbox.IsChecked到一個字典中的命名項<string,bool>

有沒有辦法使用WPF綁定語法在集合中表示路徑或鍵?例如,如果我在ViewModel中公開了名爲FileTypes的Dictionary<string, bool>作爲公共屬性,有沒有辦法讓我將其中一個複選框綁定到FileTypes [「aspx」]?如果我有更復雜的數據結構如Dictionary<string, Dictionary<string, int>>怎麼辦?

回答

3

你幾乎擁有了 - 剛剛串門索引參數報價:

{Binding FileTypes[aspx]} 

一個更復雜的數據結構,也只是需要索引的順序,例如

{Binding Foo[aspx][Bar]} 

順便說一句,這個東西一個很好的資源是在MSDN,WPF下>數據>數據綁定>綁定聲明概述 - 向下滾動到「綁定路徑語法」的符號和公約的摘要您可以在綁定路徑中使用。