从SelectionChanged上的列表框中的动态数据访问项变量

时间:2011-07-25 01:37:03

标签: c# .net listbox listboxitem windows-phone

我正在从webcclient填充列表框,数据绑定到列表框而不保存在任何地方..

我想在用户从列表框中选择时访问绑定信息 我无法从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>

我想在此选择的基础上从这个动态填充的列表(来自webservice)访问PlayerID

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

我只想获得绑定到列表框的玩家ID,并选择更改事件任何想法!!!!!!!!! &LT; 3

1 个答案:

答案 0 :(得分:2)

假设“Items”是一个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;
    }
}