从DataGrid中的CheckBox中获取包含行

时间:2010-08-24 00:06:09

标签: c# wpf datagrid

我有一个具有自动生成列的DataGrid。在AutoColumnsGenerated事件的一侧,我添加了一个额外的列。此列是DataGridTemplateColumn,其中包含一个DataTemplate,其VisualTree设置为CheckBox。我正在为CheckBox.ClickEvent添加一个处理程序,我将在其中链接相关行中的值。

如果我有多个以这种方式构建的DataGrids,我不知道如何确定click事件源自哪个列表视图。

从click事件处理程序我可以访问该复选框,但未设置其父级。我也试过使用视觉T恤助手,但无法在正确的位置进入树。

有人知道如何找到包含点击的CheckBox的相应DataGrid吗?

1 个答案:

答案 0 :(得分:2)

VisualTreeHelper应该可行。在事件处理程序上尝试以下代码:

FrameworkElement fe = sender as FrameworkElement;

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