データバインドされたItemsControlからテンプレートアイテムのインスタンスを取得するにはどうすればよいですか? (WPF)
-
19-08-2019 - |
質問
<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に名前を付ければ、正しいはずです。
所属していません StackOverflow