C# 如何列出带有空for RadComboBox的项目

C# 如何列出带有空for RadComboBox的项目,c#,telerik,radcombobox,C#,Telerik,Radcombobox,我有一个盒子。 我用一个函数填充它,该函数返回例如{Stack,Over,Flow,StackOverFlow} 当我单击RadCombobox时,将列出项目 我想把空元素放在第一位 我试着做到以下几点: var stack= GetItems(SiteId); RadComboBox1.Items.Add(new RadComboBoxItem("", "0")); RadComboBox1.DataSource = stack; RadComboBox1.DataTextField =

我有一个盒子。 我用一个函数填充它,该函数返回例如{Stack,Over,Flow,StackOverFlow} 当我单击RadCombobox时,将列出项目

我想把空元素放在第一位

我试着做到以下几点:

var stack= GetItems(SiteId);
RadComboBox1.Items.Add(new RadComboBoxItem("", "0"));
RadComboBox1.DataSource = stack;  

RadComboBox1.DataTextField = "Name";
RadComboBox1.DataValueField = "Id";
RadComboBox1.DataBind();

RadComboBox1.AllowCustomText = false;
没有变化。仅列出{Stack,Over,Flow,StackOverFlow}

当我写下面的代码时

var stack= GetItems(SiteId);

RadComboBox1.DataSource = stack;  

RadComboBox1.DataTextField = "Name";
RadComboBox1.DataValueField = "Id";
RadComboBox1.DataBind();
RadComboBox1.Items.Add(new RadComboBoxItem("xyz", "0"));
RadComboBox1.AllowCustomText = false;
仅列出{Stack,Over,Flow,StackOverFlow,xyz}

但是我没有得到我想要的结果

下面是设计方面

<telerik:RadComboBox ID="RadComboBox1" runat="server" Width="120px" MarkFirstMatch="true" Filter="Contains"></telerik:RadComboBox>

我该怎么办


我想列出{
“Stack”
“Over”
“Flow”
“StackOverFlow”

使用您的第一选择,在调用
数据绑定()之前添加
RadComboBox1.AppendDataBoundItems=true
。这意味着在从数据绑定添加项之前,它不会清除现有项。如有必要,您需要事先手动清除项目:

RadComboBox1.Items.Clear();
RadComboBox1.ClearSelection();

使用第一个选项,在调用
DataBind()
之前添加
radcombox1.AppendDataBoundItems=true
。这意味着在从数据绑定添加项之前,它不会清除现有项。如有必要,您需要事先手动清除项目:

RadComboBox1.Items.Clear();
RadComboBox1.ClearSelection();

当您设置RadComboBox数据源属性时,它将清除RadComboBox中的所有项。然后,项将迭代设置为它的IEnumerable对象,并将它们添加到项集合中。在您的情况下,您可以使用radComboBox.items.add()手动添加所有项目

或者您可以先将空项添加到集合中,然后将其绑定到RadComboBox(我假设stack是StackItem的列表)

List stack=GetItems(SiteId);
//添加您的空项目。
Insert(0,new StackItem(){Name=”“,Id=0});
//设置数据源
RadComboBox1.DataSource=堆栈;
radcombox1.DataTextField=“Name”;
radcombox1.DataValueField=“Id”;

尽管在这种情况下更改集合(后一个示例)通常不是一个好主意。

当您设置RadComboBox数据源属性时,它将清除RadComboBox中的所有项。然后,项遍历设置为它的IEnumerable对象,并将它们添加到项集合中。在您的情况下,您可以使用radComboBox.items.add()手动添加所有项目

或者您可以先将空项添加到集合中,然后将其绑定到RadComboBox(我假设stack是StackItem的列表)

List stack=GetItems(SiteId);
//添加您的空项目。
Insert(0,new StackItem(){Name=”“,Id=0});
//设置数据源
RadComboBox1.DataSource=堆栈;
radcombox1.DataTextField=“Name”;
radcombox1.DataValueField=“Id”;
尽管通常情况下,为此类情况更改收藏(后一个示例)不是一个好主意

List<StackItem> stack = GetItems(SiteId);
//Add your empty item. 
stack.Insert(0, new StackItem(){Name = "", Id = 0});

//Set the DataSource
RadComboBox1.DataSource = stack;

RadComboBox1.DataTextField = "Name"; 
RadComboBox1.DataValueField = "Id";