2009-08-06 5 views
1

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

<ContentControl x:Name="ContentContainer" 
       Content="{Binding}" 
       ContentTemplate="{Binding ContentControlTemplate, ElementName=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 не имеет детей, может быть, из-за способа содержания связан?

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

ответ

0

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

+0

Заявление «VisualTreeHelper.GetChild (this. ContentContainer, 0)» возвращает null, у него нет детей по какой-либо причине, даже до передачи. Я не думал, чтобы попробовать Contentpresenter напрямую, я дам это. Спасибо – gimpy

Смежные вопросы