C# 使用linq查询填充列表框-未设置值

C# 使用linq查询填充列表框-未设置值,c#,linq,data-binding,listbox,C#,Linq,Data Binding,Listbox,有人能告诉我为什么不将ListItems上的值设置为ID吗?值和文本都显示为DISPLAY\u NAME lstSelected.DataSource = entities.User .Where(x => SelectedItems.Contains(x.ID)) .Select(x => new ListItem { Text = x.DISPLAY_NAME, Value = x.ID }) .ToList<ListItem>();

有人能告诉我为什么不将ListItems上的值设置为ID吗?值和文本都显示为DISPLAY\u NAME

  lstSelected.DataSource = entities.User
     .Where(x => SelectedItems.Contains(x.ID))
     .Select(x => new ListItem { Text = x.DISPLAY_NAME, Value = x.ID })
     .ToList<ListItem>();

  lstSelected.DataBind();
如果使用asp.net,请尝试设置DisplayMember和ValueMember属性或DataTextField和DataValueField

lstSelected.DisplayMember = "DISPLAY_NAME";
lstSelected.ValueMember = "ID";
lstSelected.DataSource = entities.User
     .Where(x => SelectedItems.Contains(x.ID))
     .ToList();
lstSelected.DataBind();
如果使用asp.net,请尝试设置DisplayMember和ValueMember属性或DataTextField和DataValueField

lstSelected.DisplayMember = "DISPLAY_NAME";
lstSelected.ValueMember = "ID";
lstSelected.DataSource = entities.User
     .Where(x => SelectedItems.Contains(x.ID))
     .ToList();
lstSelected.DataBind();

您有两个选项,这两个选项都用错了:

设置数据源、DataTextField和DataValueField:


您有两个选项,这两个选项都用错了:

设置数据源、DataTextField和DataValueField:


你有空名单吗?或者一张填有空格或垃圾的列表?该死。没有关系。这是绑定,不是linq。我没有意识到我需要在列表框上设置DataValueField和DataTextField。对于listitems,它几乎应该是自动的,你会得到一个空列表吗?或者一张填有空格或垃圾的列表?该死。没有关系。这是绑定,不是linq。我没有意识到我需要在列表框上设置DataValueField和DataTextField。对于listitems,它几乎应该是自动的
List<ListItem> mySelectedItems  = entities.User
       .Where(x => SelectedItems.Contains(x.ID))
       .Select(x => new ListItem { Text = x.DISPLAY_NAME, Value = x.ID })
       .ToList<ListItem>();

foreach(ListItem item in mySelectedItems)
{
    lstSelected.Items.Add(item);
}
lstSelected.DataBind();