wpf доступ к списку выбранных элементов, если он не является строкой - PullRequest
0 голосов
/ 03 августа 2011

У меня есть список, который отображает свойство Name из массива Movie объектов

<ListBox Name="listBox1" SelectionChanged="listBox1_SelectionChanged">
                     <ItemsControl ItemsSource="{Binding}" >
                          <ItemsControl.ItemTemplate >
                              <DataTemplate >                                      
                                     <TextBlock Name="textBlock1" Text="{Binding Name}"/> 
                              </DataTemplate>
                          </ItemsControl.ItemTemplate>
                     </ItemsControl>
                 </ListBox>

Как я могу получить доступ к тексту текстового блока, который находится внутри ListBox в коде?
Я должен использовать значение свойства Name в моем коде

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Когда вы делаете вышеупомянутое, каждый текстовый блок внутри элемента items имеет имя textblock1, которое также имеет область действия, ограниченную каждым контейнером элементов.

Если вы хотите, чтобы каждый из этих текстовых блоков индивидуально, я обычно делаю что-то вроде1003 *

<TextBlock Text="{Binding Name}" Loaded="TextBlock_Loaded"/>

И в коде зарегистрируйте эти текстовые поля любым удобным для вас способом.Список, вероятно,

List<TextBlock> TextBlockList = new List<TextBlock>();

private void TextBlock_Loaded(object sender, RoutedEventArgs e)
        {
            TextBlockList.Add((TextBlock)sender);           
        }

И, например, получить доступ к материалу как:

String FirstItem = TextBlockList.ElementAt(0).Text;
1 голос
/ 03 августа 2011

Выбранный элемент, указанный в списке, предоставляет вам объект, которому принадлежит свойство Name, привязанное к TextBlock. На этом игра окончена.

...