根据在另一个中选择的值设置一个组合框

时间:2011-08-11 09:52:56

标签: silverlight-4.0

ComboBox问题又回来了。

我的应用程序在Silverlight中,带有C#.Net代码(VS2010)。我有三个ComboBox。

  1. 国家
  2. 国家
  3. 市。
  4. 现在我的要求是当我从我的ComboBox(例如印度)中选择Country时,那么印度的所有州应该填入State ComboBox,当我选择其他国家/地区时应该填充国家/地区。为此我创建了我的数据库只有这样才能为每个国家/地区提供UniqueID。

    我的数据库表以这种方式设计

    1. CountryTable(CountryId,国家或地区名称)
    2. StateTable(STATEID,Statename的,CountryId)
    3. CityTable(CityId,CITYNAME,Statename的)
    4. 这样我设计了我的数据库。

      我已在Service.svc.cs文件中编码以填充我的Comboboxes。

      Service.svc.cs中的代码

      [OperationContract]
              public List<GetCountry> GetCountryRecord()
              {
                  using (Entities context = new Entities())
                  {
                      return (from c in context.CountryMaster
                              select new GetCountry
                              {
                                  Country = c.CountryName,
                              }).ToList<GetCountry>();
                  }
              }
      
       public class GetCountry
              {
                  public string Country { get; set; }
              }
      

      Service.svc.cs代码结束。

      Form.Xaml.cs中的代码

      var client = new ServiceReference1.AlumniServiceClient();
                  client.GetCountryRecordCompleted += (s, ea) =>
                      {
                         cboCountry.ItemsSource = ea.Result.Select(b => b.Country).ToList();;
      
                      };
                  client.GetCountryRecordAsync();
      

      这是我填充我的组合框的方式。 现在我希望状态值应根据所选国家而改变,同样城市组合框值应根据所选状态而改变。

      如何通过使用此代码实现此目的,而不是重新编码太多东西。

      请指导机智代码......

1 个答案:

答案 0 :(得分:0)

在第一个SelectionChanged的{​​{1}}事件上或者当绑定的setter被调用时,进行数据库调用以填充序列中的下一个ComboBox

所以最初你填充国家组合。然后,当用户选择国家时,它发送数据库请求以填充状态组合。因为这一切都是异步发生的,所以当它发生时你并没有把它绑起来。