2010-08-24 38 views
0

我有一個DataGrid具有自動生成的列。在AutoColumnsGenerated事件的一側,我添加了一個額外的列。此列是一個DataGridTemplateColumn,它包含一個DataTemplate,並將其VisualTree設置爲CheckBox。我將一個處理程序添加到CheckBox.ClickEvent中,我將在相關行中鏈接一個值。獲取包含來自DataGrid內CheckBox的行

如果我有多個以這種方式構建的DataGrid,我不知道如何確定哪個列表視圖來自點擊事件。

從點擊事件處理程序我有權訪問該複選框,但其父沒有設置。我也嘗試使用視覺T恤幫手,但無法進入正確的位置。

有沒有人知道我怎麼能找出相應的包含點擊CheckBox的DataGrid?

回答

2

VisualTreeHelper應該工作。請在事件處理程序上嘗試以下代碼:

FrameworkElement fe = sender as FrameworkElement; 

while ((fe.GetType() != typeof(DataGrid)) && 
     (fe != null)) 
{ 
    fe = VisualTreeHelper.GetParent(fe) as FrameworkElement; 
} 
+0

謝謝!我正在循環DependencyObjects而不是FrameworkElements。 – 2010-08-24 14:56:46