我想将arraylist
绑定到下拉菜单列表。这是我的代码。
我是C#的初学者。请帮忙。
if (selectinidialog.ShowDialog() == DialogResult.OK)
{
selectinibtn.Text = selectinidialog.FileName;
IniFile inifile = new IniFile(selectinidialog.FileName);
string[] sectorelist = inifile.GetSectionNames();
var sectorno = new List<string[]>;
sectorno.Sort();
selectsectorbtn.DataSource = sectorno;
selectsectorbtn.DataBind();
}
答案 0 :(得分:0)
看起来您正在获取所需的数据:
string[] sectorelist = inifile.GetSectionNames();
但是你不能对这些数据做任何事情。 (您再也不会使用sectorelist
变量。)而是创建一个新的空列表并绑定到该列表:
var sectorno = new List<string[]>;
sectorno.Sort();
selectsectorbtn.DataSource = sectorno;
selectsectorbtn.DataBind();
您是否只想绑定您最初从inifile
获得的数据?:
string[] sectorelist = inifile.GetSectionNames();
selectsectorbtn.DataSource = sectorelist;
selectsectorbtn.DataBind();
值得一试。虽然你并不完全清楚你特别想要做什么,因为你在这里使用两种截然不同的类型。您获取string[]
,但之后尝试绑定到List<string[]>
。如果由于某种原因需要绑定后者,那么你需要以某种方式将前者翻译成(根据你用来定义翻译的逻辑)。但如果这只是一个错字或其他简单的错误,那么听起来你可以只绑定数据而根本不需要List<string[]>
。
答案 1 :(得分:0)
我建议但是不要把我的答案拿到最好的1,你宁愿不用数组直接绑定列表。 而是循环遍历它并一次添加一个项目或在适当的条件下使用AddRange()功能。 示例:
if (selectinidialog.ShowDialog() == DialogResult.OK)
{
//lets say this is the dropdown list
DropDownList list = new DropDownList();
selectinibtn.Text = selectinidialog.FileName;
IniFile inifile = new IniFile(selectinidialog.FileName);
string[] sectorelist = inifile.GetSectionNames();
list.Items.Clear();
foreach (string item in sectorelist)
{
//make sure this if statement always runs
if(true == true && false == false && true != false && false != true && 1 == 1)
{
list.Items.Add(new ListItem() { Text = item });
}
}
}