Шаблон ListBox содержит несколько элементов, как их получить в коде?

Имеется ListBox с шаблоном: для каждого элемента два textblock и один textbox.

Как в коде получить текст textblock и textbox?

Не знаю, как обратится в цикле к каждому элементу ListBox. Если как обычно обращться по имени к textblock, то не получается - "имя не существует в данном контексте".

 <ListBox DataContext="{Binding ElementName=cBoxGroup, Path=SelectedItem}"
               ItemsSource="{Binding Path = Atlets}"  x:Name="lbnewResult" >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="150"/>
                                <ColumnDefinition Width="150"/>
                                <ColumnDefinition Width="150"/>
                            </Grid.ColumnDefinitions>
                             <TextBlock  x:Name="tbLast_Name"  Grid.Column ="0"  Text="{Binding Path = Last_Name}" HorizontalAlignment="Left"/>
                            <TextBlock  Grid.Column ="1"  Text="{Binding Path = First_Name}" HorizontalAlignment="Left"/>
                            <TextBox Grid.Column ="2" x:Name ="tbResult" Background="Aqua"/>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
        </ListBox>

Ответы (1 шт):

Автор решения: default locale

Об этом есть статья на MSDN: How to: Find DataTemplate-Generated Elements

//Начинаем с элемента ListBox. В примере используется текущий элемент,
//Вы будете обходить элементы в списке
ListBoxItem myListBoxItem =
    (ListBoxItem)(myListBox.ItemContainerGenerator.ContainerFromItem(myListBox.Items.CurrentItem));

// Для элемента получаем ContentPresenter
ContentPresenter myContentPresenter = FindVisualChild<ContentPresenter>(myListBoxItem);

// Шаблон данных
DataTemplate myDataTemplate = myContentPresenter.ContentTemplate;
//И уже из него по имени вытаскиваем TextBlock
TextBlock myTextBlock = (TextBlock)myDataTemplate.FindName("tbLast_Name", myContentPresenter);

→ Ссылка