Для WPF DataGrid привязан источник данных ObservableCollection<>. Колонки заданы как обычные DataGridTextColumn. После редактирования ячейки, если нажать например Enter, изменяется свойство из соответствующего ряда, но обработчик события CollectionChanged коллекции-источника не вызывается. Как отловить момент, когда после изменения текста ячейки меняется свойство в связанном объекте?
Событие CollectionChanged
отправляется лишь при изменении самой коллекции, то есть, добавлении/удалении/замене целых элементов. При изменениях самих элементов CollectionChanged
не отправляется.
Для отлова изменения внутри элемента вам нужно (при добавлении этого элемента) подписаться на событие PropertyChanged
, если ваш тип данных элемента поддерживает интерфейс INotifyPropertyChanged
. Впрочем, DataGrid
по идее делает это самостоятельно, вам не должно быть нужно об этом заботиться.
Если же ваш элемент не имплементирует INotifyPropertyChanged
, то нормального метода отловить изменения внутри элемента нет. Поэтому объекты, используемые в качестве источника данных для UI-контролов, практически обязаны имплементировать INotifyPropertyChanged
.
У элемента коллекции, у нужного свойства в сеттере прописать логику.
Можно управление построить на основе событий.
т.е.
ObservableCollection<MyClass> MyClassCollection{get;set;}
, в свою очередь
class MyClass
{
private string _property;
public string Property
{
get{return _property;}
set{
//event
_property = value;
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу простой бот ВК на С#, отвечающий в конфе от моего имени на фразу "Евгений, погода"Не пойму немного, как отлавливать прием сообщения? Не подскажите...
Есть класс SQLHelper, но ничего неработаетне могу понять в чем дело
Хочу вынести возможность управления порядка товара, где идут метки, категория, дата и тд