2009-08-06 5 views
1

ContentControlで表示されるDataTemplateに含まれる要素にアクセスするにはどうすればよいですか。私は、次の行に沿ってPresentationModelをホストするContentControlを持っています。ContentControlのDataTemplate内での要素アドレッシング

<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には、子を持たないということですか?

何か助けていただきありがとうございます。

答えて

0

さて、GetChildの結果をContentPresenterにキャストしています。そのテンプレートによっては、そうでないかもしれません。デフォルトのテンプレートにはBorderが含まれていると思いますので、キャストはnullを返します。コンテンツを表示する以外に何もする必要がない場合は、ContentPresenterを直接使用しないでください。

+0

ステートメント "VisualTreeHelper.GetChild(this。ContentContainer、0)"はnullを返します。何らかの理由で、キャストの前にも子がありません。 私はContentpresenterを直接試してみることは考えていませんでした。 ありがとう – gimpy

関連する問題