2017-07-03 48 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是TextBlock的Text屬性?

+0

怎麼樣'((MyItem.Content如StackPanel中)。兒童[0]作爲TextBlock的)。文本= 「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