2017-07-03 9 views
0

ListBoxItem内にあるStackpanel内のTextblockにアクセスするにはどうすればよいですか?例えばWPF C#ListBoxItem内のテキストブロックからテキストを取得

ListBoxItem MyItem = new ListBoxItem(); 
StackPanel StackPnl = new StackPanel(); 
TextBlock Title = new TextBlock(); 

Title.Text = "Item 1"; 

StackPnl.Children.Add(Title); 
MyItem.Content = StackPnl; 

どのように私は後でListbox.SelectedItemとそのテキストブロックのTextプロパティにアクセスすることができますか?

+0

の方法 '約(のStackPanelとして(MyItem.Content).Children [0]のTextBlockなど)の.text = "FOO"'または単に 'Title.Text = "FOO"' ? –

+1

後で使用するためにTextBlockへの参照を保持しますか?どうしてそんなことをしたいのですか?なぜ、XAMLでListBoxのItemTemplateを設定し、TextBlockのTextプロパティをビューモデルアイテムプロパティにバインドする代わりに、これらの要素をコードで作成していますか? – Clemens

答えて

1

これを試してください:

//listBox1 is your ListBox 
ListBoxItem MyItem = listBox1.SelectedItem as ListBoxItem; 
if(MyItem != null) 
{ 
    StackPanel sp = MyItem.Content as StackPanel; 
    if(sp != null && sp.Children.Count > 0) 
    { 
     TextBlock textBlock = sp.Children[0] as TextBlock; 
     if(textBlock != null) 
     { 
      string text = textBlock.Text; 
     } 
    } 
} 
+0

ありがとう私の男:) – Pappkasse

関連する問題