I'm trying to create a Observable Dictionary Class for WPF DataBinding in C#. I found a nice example from Andy here: Two Way Data Binding With a Dictionary in WPF
According to that, I tried to change the code to following:
class ObservableDictionary : ViewModelBase { public ObservableDictionary(Dictionary<TKey, TValue> dictionary) { _data = dictionary; } private Dictionary<TKey, TValue> _data; public Dictionary<TKey, TValue> Data { get { return this._data; } } private KeyValuePair<TKey, TValue>? _selectedKey = null; public KeyValuePair<TKey, TValue>? SelectedKey { get { return _selectedKey; } set { _selectedKey = value; RaisePropertyChanged("SelectedKey"); RaisePropertyChanged("SelectedValue"); } } public TValue SelectedValue { get { return _data[SelectedKey.Value.Key]; } set { _data[SelectedKey.Value.Key] = value; RaisePropertyChanged("SelectedValue"); } } }
}
Unfortunately I still don't know how to pass "general" Dictionary Objects.. any ideas?
Thank you!
Cheers
If you really want to make an ObservableDictionary
, I'd suggest creating a class that implements both IDictionary
and INotifyCollectionChanged
. You can always use a Dictionary
internally to implement the methods of IDictionary
so that you won't have to reimplement that yourself.
Since you have full knowledge of when the internal Dictionary
changes, you can use that knowledge to implement INotifyCollectionChanged
.
ObservableDictionary(Of TKey, TValue)
- VB.NETObservableDictionary<TKey, TValue>
- C#If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With