доступ к переменной элемента из динамических данных в списке на SelectionChanged

Я заполняю список из веб-клиента, данные привязаны к списку и нигде не сохраняются.

Я хотел бы получить доступ к связанной информации, когда пользователь выбирает из списка, у меня возникли проблемы с доступом к значению текстового блока из события SelectionChanged.

            <ListBox x:Name="UsersListBox" ItemsSource="{Binding Items}" Height="471" VerticalAlignment="Top" HorizontalAlignment="Left" Width="457" SelectionChanged="TargetsListBox_SelectionChanged" Grid.ColumnSpan="2">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="0,0,0,17" Width="432" Orientation="Horizontal">
                        <Image x:Name="ImageAddIcon" Source="blkAdd.png" Height="60" Width="71" VerticalAlignment="Stretch" />
                        <Image x:Name="ImagePointer" Source="blkClick.png" Height="60" Width="71" VerticalAlignment="Stretch" />
                        <StackPanel>
                            <TextBlock Name="txtID" Text="{Binding PlayerID}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Foreground="#FF8A9A8A" Visibility="Collapsed" />
                            <TextBlock Name="txtNick" Text="{Binding Nickname}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Foreground="#FF8A9A8A" />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Я хотел бы получить доступ к PlayerID из этого динамически заполняемого списка (из веб-сервиса) на выбранной основе.

private void TargetsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
  string  ID  = UsersListBox.SelectedItem ???PlayerID or txtID???;
}

я просто хочу получить идентификатор игрока, который привязан к списку с событием изменения выбора ЛЮБЫЕ ИДЕИ !!!!!!!!! ‹3


person RY4N    schedule 25.07.2011    source источник


Ответы (1)


Предполагая, что «Элементы» являются ObservableCollection:

private void TargetsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var listBox = sender as ListBox;

    var selectedItem = listBox.SelectedItem as Player;
    if (selectedItem != null)
    {
        string id = selectedItem.PlayerID
        string nick = selectedItem.NickName;
    }
}
person Claus Jørgensen    schedule 25.07.2011