在我的ViewModel中,我有一個Dictionaryable的可觀察字符串集合,聲明如下。將WPF組合框綁定到Dictionary <String,ObservableCollection <String>>
public Dictionary<string, ObservableCollection<string>> NamePartsDict { get; set; }
我想詞典綁定到組合框在我的用戶界面以這樣的方式,每個組合框可以「選擇」綁定到哪個集合。
所以在我的XAML,我想用:
<ComboBox x:Name="comboBox" IsEditable="True"
ItemsSource="{Binding CurrentLibrary.NamePartsDict[Year]}" Margin="80,0,0.871,0"></ComboBox>
,我會希望綁定到由密鑰「年」索引的集合,並填充與存儲在字符串組合框集合。
但是,這個XAML導致一個空的組合框。
我已驗證字典本身可以綁定。下面的XAML使用每個鍵,值對的字符串表示填充組合框。
<ComboBox x:Name="comboBox" IsEditable="True"
ItemsSource="{Binding CurrentLibrary.NamePartsDict}" Margin="80,0,0.871,0"></ComboBox>
當從字典中獲取值時,我的綁定路徑中的內容有誤嗎?或者我正在嘗試做一些不可能的事情(在這種情況下,我將不得不尋找另一種方式!)?
任何幫助非常感謝!
添
我剛測試過它,它對我來說工作正常。請檢查'NamePartsDict [Year]'中是否有任何項目。 – Clemens
是的,那裏肯定有物品。那麼,如果它適合你,至少我知道這是可能的,所以我想我有一些調試要做!謝謝。 – JimmyTacks
@Clemens我用一個簡單的應用程序創建了一個工作示例,並驗證了字典中的集合可以綁定到。然而,我現在也複製了非工作場景,這似乎是這樣做的,因爲我的字典是ViewModel中的對象的屬性,而不是ViewModel本身的屬性。因此'ItemsSource =「{Binding Path = Dict [MyCollection2]}'起作用,其中Dict是ViewModel的屬性,但是'ItemsSource =」{Binding Path = DH.Dict [MyCollection2]}'不起作用,其中DH是ViewModel的DictionaryHolder類屬性。 – JimmyTacks