我有一个具有自动生成列的DataGrid。在AutoColumnsGenerated事件的一侧,我添加了一个额外的列。此列是DataGridTemplateColumn,其中包含一个DataTemplate,其VisualTree设置为CheckBox。我正在为CheckBox.ClickEvent添加一个处理程序,我将在其中链接相关行中的值。
如果我有多个以这种方式构建的DataGrids,我不知道如何确定click事件源自哪个列表视图。
从click事件处理程序我可以访问该复选框,但未设置其父级。我也试过使用视觉T恤助手,但无法在正确的位置进入树。
有人知道如何找到包含点击的CheckBox的相应DataGrid吗?
答案 0 :(得分:2)
VisualTreeHelper应该可行。在事件处理程序上尝试以下代码:
FrameworkElement fe = sender as FrameworkElement;
while ((fe.GetType() != typeof(DataGrid)) &&
(fe != null))
{
fe = VisualTreeHelper.GetParent(fe) as FrameworkElement;
}