2017-04-06 63 views
0

我編程一個WPF客戶端應用程序。我有一個休息api,WPF客戶端正在與此通信。我用wpf製作了一個組合框,數據綁定就沒問題。如何獲得通用列表wpf C#中的userid用戶名?

XAML標記:

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

這是工作的罰款。但我有一個通用列表Userlist,我綁定這個組合框。我想爲用戶名是組合框,我可以用userid獲得一個變量。

型號\ Users類:

namespace Desktop.Model 
{ 
    public class Users 
    { 
     public int UserId { get; set; } 
     public string Username { get; set; } 
     public string Password { get; set; } 
     public string Fullname { get; set; } 
     public int Authority { get; set; } 
    } 
} 

視圖模型/ 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); 
     } 
    } 
} 

獲取API /用戶JSON:

[ 
    { 
    "UserID": 1, 
    "Username": "admin", 
    "Password": "password", 
    "Fullname": "teszt", 
    "Authority": 1 
    } 
] 

對不起,我的英語不好。請幫幫我!謝謝。

+0

使用SelectedItem綁定,並在選定的項目中,您將有整個用戶對象。你想這樣做嗎? – Mohit

回答

0

我設法解決。

XAML標記:

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

代碼隱藏:

var id = usernameBox.SelectedValue; 

它的正常工作!

0

使用MVVM喜歡你,你可以添加到您的XAML:

SelectedItem="{Binding SelectedUser}" 
在您的視圖模型

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

完成後,使用屬性SelectedUser在你的組合框讓你選擇 「Users

相關問題