0

我有一个列表框,它通过数据绑定填充到 ObservableCollection

<ListBox Height="198" HorizontalAlignment="Left" Margin="12,45,0,0" Name="listBox_users" VerticalAlignment="Top" Width="204" ItemsSource="{Binding}">
            <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding username}" Name="left" Width="50" />
                    <TextBlock Text="{Binding real_name}" Name="right" Width="100" />
                </StackPanel>
            </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

我想为选择的任何项目获取用户名的字符串值。通常在过去我使用复杂的索引系统完成此操作,但必须有一种方法可以从 listbox_users.Items 或 listbox_users.SelectedItem 执行此操作。我不知道如何在数据绑定的上下文中实现这一点,我对这个概念还是很陌生

4

1 回答 1

2

由于您正在使用数据绑定并设置ItemTemplateListBox.SelectedItem将返回该DataContext项目的 ,而不是模板化元素。我假设 ItemsSource 是某种视图模型的列表。这是 ItemsSource 类型为的示例ObservableCollection<UserViewModel>

UserViewModel selectedUser = listBox_user.SelectedItem as UserViewModel;
string username = selectedUser.username;
于 2012-05-25T01:05:29.817 回答