1

我有 som 列表框,我需要 som 帮助才能从 SelectionChanged 上的 x:Name="ThisID" 获取文本。

我做过类似 (sender as ListBox).SelectedItem 但除此之外,我不知道该怎么做。

<ListBox ItemsSource="{Binding}"  x:Name="ListBoxD" SelectionChanged="ListBoxD_SelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True" Margin="10,0,0,0">
<ListBox.ItemTemplate><DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,10">
<Border Width="80" Height="80" VerticalAlignment="Top" Background="{StaticResource PhoneAccentBrush}" Margin="0,5,0,0" Padding="5,0,5,10">
    <TextBlock Text="{Binding DeliveryNumber}" Foreground="{StaticResource PhoneContrastBackgroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="72" />
 </Border>
 <StackPanel x:Name="StackPanelD" Orientation="Vertical" Margin="10,0,0,0">
     <TextBlock x:Name="ThisID" Text="{Binding ID}" Visibility="Collapsed"/>
     <TextBlock Text="{Binding Name}"/>
     <TextBlock TextWrapping="Wrap" FontSize="23" FontWeight="Bold" Text="{Binding AddressLine}"/>                               
  </StackPanel>

</StackPanel></DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

private void ListBoxDeliveryTo_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page.xaml?ID=" + ID, UriKind.Relative));
}
4

2 回答 2

0

假设您ListBox绑定到类型为 的项目集合,MyCustomItem这些项目具有以下属性:DeliveryNumber, IDName我可以从您的 中得知DataTemplate)。

实际上,当SelectionChanged发生这种情况时,您可以直接检索被选中的项目:

MyCustomItem item = (MyCustomItem)lstItems.SelectedItem;

然后,你可以得到它的名字。确保检查所选项目是否为空。

于 2013-03-15T18:50:53.787 回答
0

嗨,如果你有这样的代码,让我们在 FirstPage.xamal 中试试这个

 <ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="FirstListBox_SelectionChanged" >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                      <StackPanel>
                          <TextBlock Text="{Binding Data}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" />
                      </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate></ListBox>

在 Firtpage.xaml.cs

     private void FirstListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        NavigationService.Navigate(new Uri("/newmessage.xaml?selectedItem=" + FirstListBox.SelectedIndex, UriKind.Relative));
        FirstListBox.SelectedIndex = -1;
    }

现在转到 Secondpage.xaml

在网格中添加这个

 <TextBox x:Name="textbox1" HorizontalAlignment="Left" Text="{Binding Data}" />

在 Secondpage.xaml.cs 添加这段代码

    int index = 0;
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {

        string selectedIndex = "";
        if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex))
        {
            index = int.Parse(selectedIndex);
            DataContext = App.ViewModel.Items[index];
        }
        base.OnNavigatedTo(e);

    }
于 2013-03-16T07:47:35.010 回答