如何在通用列表wpf C#中获取具有userid的用户名?

如何在通用列表wpf C#中获取具有userid的用户名?,c#,wpf,xaml,combobox,generic-list,C#,Wpf,Xaml,Combobox,Generic List,我正在编写WPF客户端应用程序。我有一个RESTAPI,WPF客户机正在与此进行通信。我在wpf中制作了一个组合框,数据绑定还可以 XAML标记: <ComboBox Name="usernameBox" HorizontalAlignment="Left" Margin="127,33,0,0" VerticalAlignment="Top" Width="152" Height="24" ItemsSource="{Binding UserL

我正在编写WPF客户端应用程序。我有一个RESTAPI,WPF客户机正在与此进行通信。我在wpf中制作了一个组合框,数据绑定还可以

XAML标记:

<ComboBox Name="usernameBox" HorizontalAlignment="Left" 
          Margin="127,33,0,0" VerticalAlignment="Top" Width="152" Height="24" 
          ItemsSource="{Binding UserList}" DisplayMemberPath="Username"/>
ViewModel/UserViewModel类:

using GalaSoft.MvvmLight;
using Desktop.Model;
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Formatting;
using Newtonsoft.Json;

namespace Desktop.ViewModel
{
    public class UserViewModel : ViewModelBase
    {
        public List<Users> UserList { get; set; }

        public UserViewModel()
        {
            UserList = new List<Users>();
            string url = "http://localhost:1234/api/users";
            var json = new WebClient().DownloadString(url);
            UserList = JsonConvert.DeserializeObject<List<Users>>(json);
        }
    }
}
对不起,我的英语不好。请帮帮我!谢谢。

我设法解决了这个问题

XAML标记:

<ComboBox x:Name="usernameBox" HorizontalAlignment="Left" Margin="127,33,0,0" VerticalAlignment="Top" Width="152" ItemsSource="{Binding UserList}" SelectedValuePath="UserId" DisplayMemberPath="Username"/>

它工作得很好

像您一样使用MVVM,您可以添加到XAML中:

SelectedItem="{Binding SelectedUser}"
在ViewModel中:

private Users _user;
public Users SelectedUser
{
    get
    {
        return _user;
    }
    set
    {
        if (_user == value)
            return;
        _user = value;
        OnPropertyChanged(nameof(SelectedUser));
    }
}

完成后,使用属性
SelectedUser
在组合框中获取所选“
Users

使用SelectedItem绑定,在所选项目中,您将拥有整个用户对象。这是你想做的吗?
var id = usernameBox.SelectedValue;
SelectedItem="{Binding SelectedUser}"
private Users _user;
public Users SelectedUser
{
    get
    {
        return _user;
    }
    set
    {
        if (_user == value)
            return;
        _user = value;
        OnPropertyChanged(nameof(SelectedUser));
    }
}