Как установить Событие измененного свойства для определенного свойства объекта в коллекции

1

У меня есть ObservableCollection, у которого есть объекты. Моим требованием я хочу установить свойство Changed для определенного свойства, чтобы вызвать событие Collection Changed.

Я могу установить свойство, измененное для объекта следующим образом:

foreach (INotifyPropertyChanged prop in _baseColl)
{
 prop .PropertyChanged += prop_PropertyChanged;
}

prop_PropertyChanged()
{
//Will Refresh My Collection.
}

Этот случай будет вызван для всех свойств в этом объекте. Но я этого не хочу.

PS: Я также знаю, что мы можем запускать CollectionChanged "Добавить", "Удалить", "Переместить" и т.д. Но я хочу другое решение в моем случае.

Теги:
events
inotifypropertychanged
c#-5.0

1 ответ

2

Все, что вы можете сделать, если вы обрабатываете PropertyChanged - это проверить "PropertyName";

prop_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "TheProperty")
    {
        //Will Refresh My Collection.
    }
}

Это должно быть хорошо для большинства случаев. Если вы хотите более узко-целевое обращение, то вы всегда можете рассмотреть возможность использования настраиваемого события - если исходный объект поднимает это событие только тогда, когда интересующее вас свойство изменяется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню