从列表框中的stackpanel的子元素获取信息

时间:2013-06-12 22:00:54

标签: windows-phone-7 xaml windows-phone-8 windows-phone-7.1.1

我知道这个问题应该有一个简单的解决方案,但我似乎无法弄清楚这是我的代码是什么样的:

<ListBox HorizontalAlignment="Left"
         x:Name="locationsNB"
         VerticalAlignment="Top"
         Height="563"
         Width="455"
         SelectionChanged="locationsNB_SelectionChanged">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal"
                  Margin="18,0,0,0"
                  x:Name="placeDetails">
        <Image Source="{Binding icon}"
               Height="40"
               Width="40"
               VerticalAlignment="Top"
               Margin="0,10,8,0" />
        <StackPanel Width="350">
          <TextBlock Text="{Binding name}"
                     FontSize="35"
                     Foreground="#399B81"
                     TextWrapping="Wrap" />
          <TextBlock Text="{Binding vicinity}"
                     FontSize="20"
                     Foreground="#888888"
                     TextWrapping="Wrap" />
          <TextBlock x:Name="reference"
                     Text="{Binding reference}"
                     Visibility="Collapsed" />
        </StackPanel>
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

我想得到所选项目的stackpanel-&gt;参考文本(Text =“{Binding reference}”)我不知道我的C#应该是什么样的,但是我们将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果ListBox的ItemsSource绑定到一个项集合,那么您可以使用ListBox的SelectedItem属性

private void locationsNB_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var listbox = (ListBox)sender;

    var myObject = listbox.SelectedItem as MyCustomObject;
    if (myObject == null) return;

    // perform your custom logic with this item
}