2017-07-03 29 views
0

Wie kann ich auf einen Textblock innerhalb eines Stackpanels innerhalb eines ListBoxItem zugreifen?WPF C# Text aus einem Textblock in einem ListBoxItem abrufen

Zum Beispiel:

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

Title.Text = "Item 1"; 

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

Wie kann ich später auf die Text-Eigenschaft des Textblockes mit Listbox.SelectedItem?

+0

wie etwa '((MyItem.Content als Stackpanel) .Children [0] als TextBlock-) .Text = "foo"' oder einfach 'Title.Text = "foo"' ? –

+1

Behalten Sie einen Verweis auf TextBlock für die spätere Verwendung? Warum willst du das überhaupt machen? Und warum erstellen Sie diese Elemente im Code, anstatt die ItemTemplate der ListBox in XAML zu setzen und die Text-Eigenschaft des TextBlocks an eine View-Modell-Item-Eigenschaft zu binden? – Clemens

Antwort

1

Versuchen Sie folgendes:

//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

Danke mein Kumpel :) – Pappkasse

Verwandte Themen