2013-10-13 28 views
-1

我用下面的詞典:的PropertyChanged不受影響的集合更改

private Dictionary<string, string> _myDic; 
public Dictionary<string, string> MyDic 
{ 
    get 
    { 
     return _myDic; 
    } 
    set 
    { 
     if (_myDic!= value) 
     { 
     _myDic= value; 
     NotifyPropertyChanged("MyDic"); 
     } 
    } 
} 

是綁定到我的視圖組合框。

一切正常。

問題是,當我添加項目不更新,如果已經打開組合框。

只有當它仍然是關閉從一開始,然後更改出現在屏幕上。

我有一個地方,我添加項目字典和我立刻用希望它會影響UI事件propertychanged

MyDic.Add(strK, strV); 
NotifyPropertyChanged("MyDic"); 

但它並沒有幫助(雖然事件沒有到來爲null) 。

我知道這是因爲它是集合中的變化,而不是對象本身。我的問題是,我不能將這個變量的類型更改爲ObservableDictionary,因爲各種原因。

我的問題是爲什麼NotifyPropertyChanged("MyDic");不受影響。有沒有其他方式(除了改變類型)來處理這個問題?

+0

您是否嘗試過使用字典的Count屬性? – Programmer

+0

@ user2760623。這與字典的Count屬性具有相同的意義是什麼?你可以擴大? –

+1

通知Dictionary.Count屬性中的更改。 – Programmer

回答

0

我發現一個有點原始的方式。但它的工作。

我創建了另一個字典,我添加了它的項目。

然後,我改變了我的字典到本地詞典:

Dictionary<string, string> _dic = new Dictionary<string, string>(); 
foreach (var str in MyDic) 
    _dic.Add(str.Key, str.Value); 
_dic.Add(strK, strV); 
    MyDic= _dic; 

如果有人有更好的辦法,我很樂意聽到。