0
我有一個簡單的WPF窗體與一個組合框和一個按鈕。 ComboBox的ItemSource是一個包含目錄中文件名稱的字典。該按鈕用於通過使用「打開文件」對話框複製文件來添加新文件。我用結合Combobox - 更新並選擇新項目後,itemssource更改
代碼:
cmbClasses.ItemsSource = classList;
cmbClasses.DisplayMemberPath = "Key";
cmbClasses.SelectedValuePath = "Value";
我想組合框增加新的文件,以字典後刷新項目,集是的SelectedItem。 我想這對令人耳目一新,但沒有奏效:
cmbClasses.Items.Clear();
cmbClasses.ItemsSource = classList;
cmbClasses.DisplayMemberPath = "Key";
cmbClasses.SelectedValuePath = "Value";
我看見有幾個問題在這裏,但他們沒有幫助。任何人都知道我該怎麼做?
當我看到你的評論後,我做了一個關於Observable Dictionary的挖掘,發現了一個[user-made class](http://drwpf.com/blog/2007/09/16/can-i-bind-my-itemscontrol -to-A-字典/)。你可能想看看! – cameloper
是的 - 這會工作。 ObservableDictionary會在它發生變化時發出通知 - 確切地說你正在做什麼。還有ObservableList等。你也可以自己做。我在我給你的鏈接中注意到,它明確地發送了它所通知的財產的名稱改變。在較新版本的.Net中,你可以使用MemberCallerName屬性來代替,這使我認爲代碼「更清潔」。 –
Paul