В настоящее время я играю с WPF и инструментарием WPF, который содержит DataGrid в стиле WindowsForms.
Я связал список пользовательских объектов с сеткой как ItemsSource.Эти объекты содержат два логических свойства, которые можно редактировать с помощью сетки данных.Синхронизация обратно в мой список работает нормально с использованием встроенной модели привязки данных, но мне нужно вызвать другой метод, если одно из значений CheckBox изменилось для сериализации объекта обратно в XML.К сожалению, я не могу выполнить это кеширование внутри самого своего класса данных, поскольку он не знает своего провайдера кеша.
Поэтому мне нужно событие в DataGrid, которое запускается сразу после изменения значения флажка.
Я уже унаследовал класс AutoCommitCheckBoxColumn от исходного DataGridCheckBoxColumn, который переопределяет метод GenerateEditingElement(DataGridCell cell, object dataItem)
, а также обработчики checkbox_ (Un-) Checked.
Очевидно, что не могу и не хочуздесь также нужно вызвать метод кэширования - это нужно сделать в классе Window, в котором находится DataGrid.
Итак, я просто не могу найти подходящее событие для этого: MouseButton .. только событиясрабатывает при нажатии на внешнее пространство ячейки, а не на внутренний флажок в ячейке.CellEditEnding будет работать, но будет запущен, только если один выберет другую ячейку после (не) установки флажка.SourceUpdated вообще не запускается.
Может кто-нибудь помочь мне с подходящим событием?Или я могу каким-то образом безопасно вызвать событие в сетке данных из моего класса AutoCommitCheckBoxColumn?
Заранее большое спасибо!