WPF Toolkit: DataGrid EventHandler для CheckBoxColumn.CheckedChanged? - PullRequest
0 голосов
/ 19 января 2010

В настоящее время я играю с WPF и инструментарием WPF, который содержит DataGrid в стиле WindowsForms.

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

Поэтому мне нужно событие в DataGrid, которое запускается сразу после изменения значения флажка.

Я уже унаследовал класс AutoCommitCheckBoxColumn от исходного DataGridCheckBoxColumn, который переопределяет метод GenerateEditingElement(DataGridCell cell, object dataItem), а также обработчики checkbox_ (Un-) Checked.

Очевидно, что не могу и не хочуздесь также нужно вызвать метод кэширования - это нужно сделать в классе Window, в котором находится DataGrid.

Итак, я просто не могу найти подходящее событие для этого: MouseButton .. только событиясрабатывает при нажатии на внешнее пространство ячейки, а не на внутренний флажок в ячейке.CellEditEnding будет работать, но будет запущен, только если один выберет другую ячейку после (не) установки флажка.SourceUpdated вообще не запускается.

Может кто-нибудь помочь мне с подходящим событием?Или я могу каким-то образом безопасно вызвать событие в сетке данных из моего класса AutoCommitCheckBoxColumn?

Заранее большое спасибо!

1 Ответ

0 голосов
/ 19 января 2010

Рассматривали ли вы использование триггеров данных WPF?

Смотрите здесь для получения дополнительной информации: http://en.csharp -online.net / WPF_Styles_and_Control_Templates -Data_Triggers

...