次のような DataTemplate を持つ ListBox があります。
<ListBox Name="listBox">
<ListBox.ItemTemplate>
<DataTemplate DataType="x:Type local:NumericIconDefinition">
<Grid>
<ComboBox Name="IconComboBox"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
コード ビハインドで操作するためにComboBox インスタンスをフェッチしたいと思います。ListBoxItem をフェッチするプロセスを説明したブログ投稿を見つけました。
ListBoxItem lbi = (ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(IndexInListBox);
しかし、そのアイテムの Grid にアクセスしてから ComboBox インスタンスにアクセスする良い方法が見つかりません。理想的には、上記のコードに基づいて、次のようなことをしたいと思います。
ComboBox cb = (ComboBox)lbi.GetChildByName("IconComboBox");