2016-10-27 228 views
0

ItemsSource屬性是否未綁定到該項目?Combobox顯示項目

XAML:

<ComboBox Name="cmbUserName" Height="30" 
      VerticalAlignment="Top" Margin="10,64,614,0"/> 

<ComboBox Name="cmbAcessTime" Height="30" 
      VerticalAlignment="Top" Margin="354,64,288,0"/> 

C#:

DMSService.DMSService service = new DMSService.DMSService(); 
var logList = service.GetLogDetails(); 
var UserNames = (from A in logList orderby A.FirstName select new UserName { Users = A.FirstName + " " + A.SurName, ID = Convert.ToInt32(A.Id) }).Distinct(); 
var loginDate = (from A in logList select A.LogInTime.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 

cmbUserName.ItemsSource = UserNames; 
cmbAccessDate.ItemsSource = loginDate; 

enter image description here

我想補充的組合框這些用戶名並設置ID。然後,在改變組合框的位置傳遞ID。

enter image description here

回答

0

您需要從您的數據源設置組合框屬性SelectedValuePath和的DisplayMemberPath。請檢查下面的XAML:

<ComboBox Name="cmbUserName" Height="30" 
       VerticalAlignment="Top" Margin="10,64,614,0" 
       SelectedValuePath="Id" DisplayMemberPath="usernames" /> 

    <ComboBox Name="cmbAcessTime" Height="30" 
       VerticalAlignment="Top" Margin="354,64,288,0" 
       SelectedValuePath="Id" DisplayMemberPath="usernames" /> 

您可以使用下面的代碼和傳遞值來獲取組合框的選定值。

var selectedHPQ = (int)cmbUserName.SelectionBoxItem; 

感謝

+0

我已經綁定組合框像SelectedValuePath = 「ID」 的DisplayMemberPath = 「用戶名」。但它現在顯示空列表。 UserNames變量包含linq結果。我該如何工作?請查看第一張圖片。 linq返回結果就像圖像一樣。 – lashja