【问题标题】:Combobox Display items组合框显示项目
【发布时间】:2016-10-27 10:01:20
【问题描述】:

ItemsSource 属性是否未绑定到项目?

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;

我想在 Combobox 中添加这些用户名并设置 ID。然后,在更改组合框的位置传递 ID。

【问题讨论】:

    标签: c# wpf linq combobox


    【解决方案1】:

    您需要从数据源中设置 ComboBox 属性 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" />
    

    您可以使用以下代码获取 ComboBox 的选定值并将值传递到您想要的位置。

    var selectedHPQ = (int)cmbUserName.SelectionBoxItem;
    

    谢谢

    【讨论】:

    • 我已经绑定了像 SelectedValuePath="Id" DisplayMemberPath="usernames" 这样的组合框。但它现在显示空列表。 UserNames 变量包含 linq 结果。我该怎么做?请查看第一张图片。像图片一样的 linq 返回结果。
    猜你喜欢
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多