SIZ、アンディとBodeakerは絶対的に正しいです。
ここでは、リストボックスの選択した項目のテキストボックスをそのハンドルを使用して取得する方法を示します。
var container = listboxSaveList.ItemContainerGenerator.ContainerFromItem(listboxSaveList.SelectedItem) as FrameworkElement;
if (container != null)
{
ContentPresenter queueListBoxItemCP = VisualTreeWalker.FindVisualChild<ContentPresenter>(container);
if (queueListBoxItemCP == null)
return;
DataTemplate dataTemplate = queueListBoxItemCP.ContentTemplate;
TextBox tbxTitle = (TextBox)dataTemplate.FindName("tbxTitle", queueListBoxItemCP);
tbxTitle.Focus();
}
(注:ここでは、VisualTreeWalkerが露出し、様々な便利な機能を持つVisualTreeHelper以上の私自身のラッパーです)というそのUIコンテナを意味するものではありません項目がコントロールに追加されているという理由だけで
注意、まだ生成されていません。まだUIコンテナがない場合を考慮してください。 – Andy
私はC#とWPFで書いていますが、このプロパティはListBox.ItemsContainerの下に表示されません。このリストボックスのインスタンスを取得するにはどうすればよいですか? – sprite
@size、私の質問の解決策はありますか? http://stackoverflow.com/questions/6148279/record-items-visible-to-user-in-listbox(+250 bounty) – tofutim