2010-01-19 31 views
0

我目前正在使用WPF和包含WindowsForms風格的DataGrid的WPF工具包。WPF Toolkit:CheckBoxColumn.CheckedChanged的DataGrid EventHandler?

我已經將自定義對象的列表作爲ItemsSource綁定到網格。這些對象包含可以使用數據網格編輯的兩個布爾屬性。使用內置數據綁定模型可以很好地同步到我的列表中,但如果其中一個CheckBox值更改爲以XML格式返回對象,我必須調用另一個方法。不幸的是,我不能在我的數據類中進行這種緩存,因爲它不知道它的緩存提供者。

因此,我需要一個DataGrid上的事件,該事件在複選框值發生更改後立即觸發。

我已經從原始DataGridCheckBoxColumn繼承了一個AutoCommitCheckBoxColumn類,它覆蓋了方法GenerateEditingElement(DataGridCell cell, object dataItem)以及checkbox_(Un-)Checked處理程序。

很顯然,我不能也不想從這裏調用緩存方法 - 它需要在DataGrid所在的Window類中完成。

所以 - 我只是找不到適當的事件:MouseButton ..事件只在點擊單元格中的外部單元格空間而不是內部複選框時觸發。 CellEditEnding可以工作,但只有在選中另一個單元格(取消選中)後纔會觸發。 SourceUpdated根本不會觸發。

任何人都可以幫我在這裏做一個適合的活動嗎?或者我可以以某種方式從我的AutoCommitCheckBoxColumn類安全地觸發DataGrid上的事件?

非常感謝您提前!

回答

0

你有沒有考慮過使用WPF數據觸發器?

這裏看到更多的信息: http://en.csharp-online.net/WPF_Styles_and_Control_Templates -Data_Triggers

+1

我決定使用INotifyPropertyChanged的事件問題:http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx 無論如何感謝。 – Shackles 2010-01-23 16:38:21