wpf访问列表框选中的项目,如果它不是字符串

时间:2011-08-03 15:25:35

标签: wpf wpf-controls binding observablecollection

我有一个列表框,显示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内的textBlock文本?
我必须在代码中使用Name属性的值

2 个答案:

答案 0 :(得分:1)

列表框报告的选定项目会向您显示拥有TextBlock中绑定的Name属性的对象。此时游戏结束了。

答案 1 :(得分:1)

当你执行上述操作时,itemscontrol中的每个文本块都有一个名称textblock1,其范围也限制在每个项容器中。

如果您想单独使用每个文本块,我通常会执行以下操作:

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