General Observable Dictionary Class for DataBinding/WPF C#
c#, data-binding, wpf
Solution
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`.
Problem
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