2010-03-10 84 views
1

在我的代碼中,我有2個ComboBox DropDownLists,由下面的代碼創建。問題是,當DropDownlist的值發生變化時,另一個值也會發生變化。你能幫我解決這個問題嗎?C#2組合框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"; 

回答

3

這是因爲您將兩個下拉列表都指向同一個數據源。您需要製作第二個語言副本才能傳遞給ddlTo.DataSource

+0

謝謝。 通過執行以下操作來解決: IList languagesFrom = new List (); languagesFrom.Add(new Translate(「Select」,「」)); languagesFrom.Add(new Translate(「English」,「en」)); languagesFrom.Add(new Translate(「French」,「fr」)); languagesFrom.Add(new Translate(「Spain」,「es」)); IList languagesTo = new List (languagesFrom); – mouthpiec 2010-03-10 21:45:12

+0

很高興成爲服務 – 2010-03-10 21:48:35

2

當您使用IList作爲數據源時,您隱式地同步訪問列表,包括「selected」項的概念。你應該可以簡單地使用:

 ddlFrom.Items.Clear(); 
     ddlTo.Items.Clear(); 
     foreach (var language in languages) 
     { 
      ddlFrom.Items.Add(language); 
      ddlTo.Items.Add(language); 
     }