2009-08-06 4 views
1

Comment accéder à un élément contenu dans un DataTemplate affiché via un ContentControl. J'ai un ContentControl qui accueille un PresentationModel le long des lignes de:Adressage d'élément dans un DataTemplate à partir d'un ContentControl

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

Où « ce » est le point de vue (UserControl).

Il y a un DataGridControl Je veux EndEdit, donc j'ai essayé ceci:

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

Le problème est que le ContentControl n'a pas d'enfant, peut-être à cause de la façon dont le contenu est lié?

J'apprécie toute aide.

Répondre

0

Eh bien, vous allez convertir le résultat de GetChild en ContentPresenter. Selon son modèle, cela peut ne pas être le cas. Je pense que son modèle par défaut inclut une bordure, donc votre distribution retournera null. Si vous n'avez pas besoin d'autre chose que d'afficher le contenu, pourquoi ne pas utiliser ContentPresenter directement?

+0

L'instruction "VisualTreeHelper.GetChild (this ContentContainer, 0)" renvoie null, il n'a aucun enfant pour une raison quelconque, même avant la distribution. Je ne pensais pas essayer le Contentpresenter directement, je vais essayer. Merci – gimpy

Questions connexes