Адресация элементов в DataTemplate из ContentControl - PullRequest
1 голос
/ 07 августа 2009

Как получить доступ к элементу, содержащемуся в шаблоне данных, который отображается через ContentControl. У меня есть ContentControl, который размещает PresentationModel в соответствии с:

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

Где «this» - это представление (UserControl).

Есть DataGridControl, на котором я хочу EndEdit, поэтому я попробовал это:

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

Проблема в том, что у ContentControl нет дочерних элементов, возможно, из-за способа связывания содержимого?

Я ценю любую помощь.

1 Ответ

0 голосов
/ 08 августа 2009

Итак, вы приводите результат GetChild к ContentPresenter. В зависимости от шаблона, это может быть не так. Я думаю, что его шаблон по умолчанию включает в себя Border, поэтому ваш актерский состав вернет ноль. Если вам не нужно ничего делать, кроме отображения контента, почему бы не использовать ContentPresenter напрямую?

...