2

<ItemsControl>カスタム<DataTemplate>(および<ItemsPanelTemplate>単なるカスタム)を持っており、単純な観察可能な文字列のコレクションにWrapPanelバインドされています。ItemsSource

は、プロパティが を介して文字列にバインドされているDataTemplateカスタムのインスタンスで構成されています。UserControl{Binding}

問題は、データ項目が単なる文字列であるため、UserControlプログラムで直接インスタンスにアクセスする必要があることですが、方法がわかりません!

私はもう試した:

var item = tagBar.Items[ tagBar.Items.Count - 1 ];

...しかし、それは文字列を返すだけです。また:

var item2 = tagBar.ItemContainerGenerator.ContainerFromIndex( tagBar.Items.Count - 1 );

... を返しますが、 my のインスタンスに到達するために をContentPresenterどうすればよいかわかりません。ContentPresenterUserControl

??

これはこの質問に似ていますが、適切に回答されたことはなく、Silverlight に固有のものでしたが、これは WPF です。

4

1 に答える 1

2

ここに投稿した回答は、DataTemplate 内の要素にフォーカスすることを扱っていますが、必要なコードを提供する必要があります。DataTemplate で FindName メソッドを使用して、その中のコントロールを検索する必要があります。UserControl に名前を付けると、正しいはずです。

于 2008-12-05T03:10:55.890 に答える