ComboBox问题又回来了。
我的应用程序在Silverlight中,带有C#.Net代码(VS2010)。我有三个ComboBox。
现在我的要求是当我从我的ComboBox(例如印度)中选择Country时,那么印度的所有州应该填入State ComboBox,当我选择其他国家/地区时应该填充国家/地区。为此我创建了我的数据库只有这样才能为每个国家/地区提供UniqueID。
我的数据库表以这种方式设计
这样我设计了我的数据库。
我已在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();
这是我填充我的组合框的方式。 现在我希望状态值应根据所选国家而改变,同样城市组合框值应根据所选状态而改变。
如何通过使用此代码实现此目的,而不是重新编码太多东西。
请指导机智代码......
答案 0 :(得分:0)
在第一个SelectionChanged
的{{1}}事件上或者当绑定的setter被调用时,进行数据库调用以填充序列中的下一个ComboBox
。
所以最初你填充国家组合。然后,当用户选择国家时,它发送数据库请求以填充状态组合。因为这一切都是异步发生的,所以当它发生时你并没有把它绑起来。