2017-07-03 52 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