ObservableDictionary für c#
Ich versuche, nach der Umsetzung der ObservableDictionary: ObservableDictionary (C#).
Wenn ich mit folgenden code und binden Sie das Wörterbuch an ein DataGrid:
ObserveableDictionary<string,string> dd=new ObserveableDictionary<string,string>();
....
dd["aa"]="bb";
....
dd["aa"]="cc";
in dd["aa"]="cc";
ich bin immer folgende exception
Index was out of range. Must be non-negative and less than the size of the
collection. Parameter name: index
Diese Ausnahme wird geworfen in CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, newItem, oldItem)
in der folgenden Methode:
private void OnCollectionChanged(NotifyCollectionChangedAction action, KeyValuePair<TKey, TValue> newItem, KeyValuePair<TKey, TValue> oldItem)
{
OnPropertyChanged();
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, newItem, oldItem));
}
Den index
param zu entsprechen scheint KeyValuePair<TKey, TValue> oldItem
.
Wie kann KeyValuePair<TKey, TValue>
out of range sein, und was muss ich tun, um diese Arbeit zu machen?
InformationsquelleAutor Arsen Zahray | 2012-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ähnlichen Datenstruktur, zu binden Wörterbuch-Art-Sammlung
http://drwpf.com/blog/2007/09/16/can-i-bind-my-itemscontrol-to-a-dictionary/
Gibt es eine neue Datenstruktur ObservableDictionary und feuert PropertyChanged im Falle von einer änderung der zugrunde liegenden Wörterbuchs.
InformationsquelleAutor Tilak
hier ist, was ich Tat am Ende:
Diese Implementierung aussieht und sich anfühlt wie Wörterbuch, um die user und wie ObservableCollection zu WPF
Nice job! In
TryGetValue
die if-Anweisung, sollteif (Equals(r, default(ObservableKeyValuePair<TKey, TValue>)))
InformationsquelleAutor Arsen Zahray
ObservableDictionary wurde Hinzugefügt, um die .Net-Framework in version 4.5:-
https://zamjad.wordpress.com/2012/10/12/observabledictionary-in-net-4-5/
Hier ist ein link zu den neuesten source-code:-
https://referencesource.microsoft.com/#PresentationFramework/src/Framework/MS/Internal/Annotations/ObservableDictionary.cs
InformationsquelleAutor The Lonely Coder
Sogar ich bin mit dem ObservableDictionary von github, ich habe auch gegenüber diesen Ausnahme. Ich hatte erklärt das Wörterbuch variable auf Klassenebene später habe ich versucht, eine neue Instanz in der Methode, wo es immer war, zugegriffen.
OldCode gab Ausnahme:
NewCode was auch geklappt hat:
InformationsquelleAutor Rakshith Balasubramanya