将XML中的省市数据绑定到winfrom中的下拉框

界面:属性DropDownStyle选DropDownList

XML:

 

1.定义字典
/// <summary>
/// 省字典
/// </summary>
Dictionary<string, string> Dic_Province = new Dictionary<string, string>();
/// <summary>
/// 市字典
/// </summary>
Dictionary<string, string> Dic_City = new Dictionary<string, string>();

2.给下拉框添加“请选择”
if (!Dic_Province.ContainsKey("0"))
{
       Dic_Province.Add("0", "请选择");}
if (!Dic_City.ContainsKey("0"))
{
      Dic_City.Add("0", "请选择");
}

3.加载XML
XDocument xdoc = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "XML/province.xml");
XElement Ixele = xdoc.Root; //获取根元素  
//获取ProvinceName
IEnumerable<XElement> Ielements = from ele in Ixele.Elements("Province").Elements("ProvinceName") select ele;
//获取与省相关的CityName
 IEnumerable<XElement> Ielements = from ele in Ixele.Elements("Province").Elements("City").Elements("CityName")
                                              where ele.Parent.Parent.Element("ProvinceName").Value == IProvince
                                              select ele;

4.遍历添加到字典,市省略
foreach (var item in Ielements)
{
       IProvince = item.Value;
       IBH = item.Attribute("id").Value;
                
         if (!Dic_Province.ContainsKey(IBH))
         {
                Dic_Province.Add(IBH, IProvince);
         }
}

5.绑定字典数据到下拉框cbProvince
//绑定省,市省略
 BindingSource BS = new BindingSource();
 BS.DataSource = Dic_Province;
 cbProvince.DataSource = BS;
 cbProvince.DisplayMember = "Value";
 cbProvince.ValueMember = "Key";

注意点:
BindingSource 需实例化两个。
//绑定市
string IProvince = cbProvince.Text;//先获取省text
Dic_City.Clear();//绑定前先清空
触发级联绑定相应的市,在cbProvince_DropDownClosed中绑定市

 

 

转载于:https://www.cnblogs.com/doting/p/7347272.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值