1

ContentControl を介して表示される DataTemplate に含まれる要素にアクセスするにはどうすればよいですか。次の行に沿って PresentationModel をホストする ContentControl があります。

<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 に子がないことですか?

助けていただければ幸いです。

4

1 に答える 1

0

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

于 2009-08-07T20:35:28.780 に答える