在我的代码中,我有2个ComboBox DropDownLists,由下面的代码创建。问题是当DropDownlist的值发生变化时,另一个值也会发生变化。你能帮我解决一下这个问题吗?
public class Translate
{
public string CountryName { get; set; }
public string CountryCode { get; set; }
}
IList<Translate> languages = new List<Translate>();
languages.Add(new Translate("Select", ""));
languages.Add(new Translate("English", "en"));
languages.Add(new Translate("French", "fr"));
languages.Add(new Translate("Spain", "es"));
ddlFrom.DataSource = languages;
ddlFrom.DisplayMember = "CountryName";
ddlFrom.ValueMember = "CountryCode";
ddlTo.DataSource = languages;
ddlTo.DisplayMember = "CountryName";
ddlTo.ValueMember = "CountryCode";
答案 0 :(得分:3)
那是因为您将两个下拉列表都指向同一个数据源。您需要制作第二份语言副本以传递给ddlTo.DataSource
。
答案 1 :(得分:2)
当您使用IList作为数据源时,您隐式地同步对列表的访问,包括“选定”项目的概念。您应该能够简单地使用:
ddlFrom.Items.Clear();
ddlTo.Items.Clear();
foreach (var language in languages)
{
ddlFrom.Items.Add(language);
ddlTo.Items.Add(language);
}