Какой лучший способ проверить, если System.Collections.generic.List обновляется (C # 4.0)?

StackOverflow https://stackoverflow.com//questions/25055270

Вопрос

Мне нужно определить, будет ли список обновлена (добавлена / удалено элемент).Мне нужно использовать System.Collections.Generic.List<T>, я не могу использовать ObservableCollection для этого (и подписаться на событие CollectionChanged).

Вот что я пробовал до сих пор:

Я использую Fody.PropertyChanged вместо реализации INotifyPropertyChangedEvent - Свойство Fody изменилось на Github

[AlsoNotifyFor("ListCounter")]
public List<MyClass> MyProperty
{get;set;}

public int ListCounter {get {return MyProperty.Count;}}

//This method will be invoked when ListCounter value is changed
private void OnListCounterChanged()
{
   //Some opertaion here
}
.

Есть ли лучший подход.Пожалуйста, дайте мне знать, если я делаю что-то не так, чтобы я мог улучшить.

Это было полезно?

Решение

Вы можете использовать методы расширения:

    var items = new List<int>();
    const int item = 3;
    Console.WriteLine(
        items.AddEvent(
            item,
            () => Console.WriteLine("Before add"),
            () => Console.WriteLine("After add")
        )
        ? "Item was added successfully"
        : "Failed to add item");
.

сам метод расширения.

public static class Extensions
{
    public static bool AddEvent<T>(this List<T> items, T item, Action pre, Action post)
    {
        try
        {
            pre();
            items.Add(item);
            post();
            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top