我在Loaded事件上附加事件「DataGridColumnHeader_MouseRightButtonDown」以打開上下文菜單以顯示列名稱。它工作正常。如何在代碼後面的自定義DataGrid中的DataGridColumnHeader上附加事件?
private void dtaGrd_Loaded(object sender, RoutedEventArgs e)
{
columnHeaders = TreeHelper.GetVisualChildCollection<DataGridColumnHeader>(this);
foreach (DataGridColumnHeader columnHeader in columnHeaders)
{
columnHeader.MouseRightButtonDown += DataGridColumnHeader_MouseRightButtonDown;
}
}
但是,當我取消選中列,然後「名稱」列的可見性將被摺疊。再次,我檢查該列以將可見性設置爲「可見」,然後「DataGridColumnHeader_MouseRightButtonDown」事件不起作用。
是我的實現是錯誤的或DataGridColumnHeader將創建新的實例時,可見性是變化?
是的,我發現當DataGridColumnHeader的可見性發生變化時,它的Loaded事件也會引發火災。所以,我們必須在DataGridColumnHeader的加載事件上綁定處理程序。
哪個DataGrid事件讓我知道DataGridColumnHeader是加載的? 或我必須附加DataGridColumnHeader加載事件?
我發現當DataGridColumnHeader的可見性發生變化時,它的Loaded事件也會觸發。所以,我們必須在DataGridColumnHeader的加載事件上綁定處理程序。 –