<CS>
<Indicators>
<Indicator name="a" zh_name="A"/>
<Indicator name="b" zh_name="B" >
<Indicator name="c" zh_name="C" >
</Indicators>
</CS>以上这样的MXL 怎么加载到combobox里? 
要求combobox显示的是 “A”  
选择A 之后 tag里记 a

解决方案 »

  1.   

    首先纠正个错误。 不是 MXL 应该是XML有多种方法实现你的需求。 不过有一点不明白,为什么要在tag里面显示a。应该是绑定 ComboBox; 显示A,值为a。-----------------------------------
    读取XML,节点。可以定义一个小对象,name,text 2个属性。分别赋值,放入ILIst中,进行绑定。另外可以直接用DataSet读取XML,然后绑定ComboBox,指定value,Text即可。
      

  2.   


    public class Indicators
    {
       public string Name{get;set;}
       public string Value{get;set;}
       public override string ToString()
       { 
         return this.Name;
       }
    }//读取XML
    XmlDocument doc = new XmlDocument();
    doc.Load("XML路径");
    XmlNode node = doc.SelectSingleNode("CS/Indicators");
    if(node != null)
    {
      foreach(XmlNode xn in node.ChildNodes)
      {
        Indicators ind = new Indicators();
        ind.Name = xn.Attributes["zh_name"].InnerText;
        ind.Value = xn.Attributes["name"].InnerText;
        //添加到ComboBox
        comboBox1.Items.Add(ind);
      }
    }//取值
    Indicators ind = comboBox1.SelectedItem as Indicators;
    if(ind != null)
    {
      string name = ind.Name;
      string value = ind.Value;
    }
      

  3.   

    DataSet ds=DataSet.LoadFromXml("fileName");
    DataTable dt=ds.Tables(0);
    ComboBox.DataSource=dt;
    ComboBox.displayField="zh_name";
    ComboBox.ValueField="name";
      

  4.   

    谢谢,如何给comboBox1 初始值呢?
    比如说从comboBox1的items里  comboBox1.text = "?"