.NET OperableDictionaryC#

Место общения программистов C#
Ответить
Anonymous
 .NET OperableDictionary

Сообщение Anonymous »

Я написал следующий класс, который реализует (или пытается!) Словарь с уведомлениями: < /p>

public partial class ObservableDictionary : Dictionary, INotifyCollectionChanged
{
public ObservableDictionary() : base() { }
public ObservableDictionary(int capacity) : base(capacity) { }
public ObservableDictionary(IEqualityComparer comparer) : base(comparer) { }
public ObservableDictionary(IDictionary dictionary) : base(dictionary) { }
public ObservableDictionary(int capacity, IEqualityComparer comparer) : base(capacity, comparer) { }
public ObservableDictionary(IDictionary dictionary, IEqualityComparer comparer) : base(dictionary, comparer) { }

public event NotifyCollectionChangedEventHandler CollectionChanged;

public new TValue this[TKey key]
{
get
{
return base[key];
}
set
{
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, key, 0));
base[key] = value;
}
}

public new void Add(TKey key, TValue value)
{
base.Add(key, value);
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, key, 0));
}

public new bool Remove(TKey key)
{
bool x = base.Remove(key);
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, key, 0));
return x;
}

public new void Clear()
{
base.Clear();
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}

protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
if (CollectionChanged != null)
{
CollectionChanged(this, e);
}
}
}
< /code>

В другом классе у меня есть слушатель для myobservabledictionary.collectionChanged < /code> Событие: < /p>

Проблема, которую я столкнулся, заключается в том, что событие не уводит. Как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/566 ... dictionary
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»