1

У меня есть som listbox, и мне нужно som help для получения текста от x: Name = "ThisID" в SelectionChanged.SelectionChanged get Textblock Text/ID

Я сделал что-то вроде (отправитель как 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)); 
} 

ответ

0

Допустим, что ваш ListBox привязан к коллекции элементов, которые типа MyCustomItem, которые обладают следующими свойствами: DeliveryNumber, ID, Name (как я могу сказать от вашего DataTemplate).

Когда SelectionChanged происходит, вы, по сути, возможность непосредственно получить элемент, который был выбран:

MyCustomItem item = (MyCustomItem)lstItems.SelectedItem; 

Затем, вы можете просто получить его имя. Убедитесь, что выбранный элемент имеет значение null или нет.

0

Привет Давайте попробуем это в FirstPage.xamal, если U есть некоторый код, как этот

<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}" /> 

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

    }