データバインドされたItemsControlからテンプレートアイテムのインスタンスを取得するにはどうすればよいですか? (WPF)

StackOverflow https://stackoverflow.com/questions/342790

質問

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

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

問題は、データ項目が単なる文字列であるため、プログラムでContentPresenterのインスタンスに直接アクセスする必要がありますが、その方法がわからないようです!

試しました:

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

...しかし、それは単に文字列を返します。また:

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

... <=>を返しますが、<=>を使用して自分の<=>のインスタンスに到達する方法がわかりません。

??

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

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top