来自ContentControl的DataTemplate中的元素寻址

时间:2009-08-06 23:18:52

标签: wpf datatemplate contentcontrol

如何访问通过ContentControl显示的DataTemplate中包含的元素。我有一个ContentControl,它包含一个PresentationModel:

<ContentControl x:Name="ContentContainer"
                Content="{Binding}" 
                ContentTemplate="{Binding ContentControlTemplate, ElementName=this}"

其中“this”是视图(UserControl)。

我想要EndEdit的DataGridControl,所以我尝试了这个:

ContentPresenter presenter = VisualTreeHelper.GetChild(this. ContentContainer, 0) as ContentPresenter;
DataGridControl dg = this. ContentContainer.ContentTemplate.FindName("datagrid", presenter) as DataGridControl;
dg.EndEdit();

问题是ContentControl没有子节点,可能是因为内容的绑定方式?

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好吧,您将GetChild的结果转换为ContentPresenter。根据其模板,情况可能并非如此。我认为它的默认模板包含一个Border,所以你的演员表将返回null。如果您不需要它来执行除显示内容之外的任何操作,为什么不直接使用ContentPresenter?