2009-08-06 3 views
1

ContentControl을 통해 표시되는 DataTemplate에 포함 된 요소에 어떻게 액세스합니까? ContentControl에서 DataTemplate 내의 요소 주소 지정

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

은 "이"뷰 (UserControl을)입니다 : 나는의 라인을 따라 PresentationModel를 호스팅하는 ContentControl을 수 있습니다.

가 I가지며 EndEdit하려는 DataGridControl, 그래서 나는이 시도 :

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로 캐스팅하고 있습니다. 템플릿에 따라서는 그렇지 않을 수도 있습니다. 기본 템플릿에는 테두리가 포함되어 있으므로 캐스트가 null을 반환합니다. 콘텐츠를 표시하는 것 외에 다른 작업을 수행 할 필요가 없다면 ContentPresenter를 직접 사용하지 않는 이유는 무엇입니까?

+0

"VisualTreeHelper.GetChild (this. ContentContainer, 0)"문은 null을 반환하고 캐스트하기 전에 어떤 이유로 든 하위 항목이 없습니다. ContentPresenter를 직접 사용하지 않을 것이라고 생각합니다. 감사합니다. – gimpy

관련 문제