C# 如何在c中填充从属复选框列表

C# 如何在c中填充从属复选框列表,c#,dependencies,elements,checkboxlist,C#,Dependencies,Elements,Checkboxlist,我有三份家属清单。 1.国家 2.州 3.城市 如果在国家/地区复选框列表中选择了特定国家/地区,我想列出所有国家/地区。同样地,如果我选择了任何一个州,那么相应的城市应该在城市复选框列表中填充 我为每个国家的州创建了单独的函数,并使用以下代码调用它们: 我有以下问题: 1.当复选框未选中时,哪个属性用于检测? 2.如何检查所选州/国家的名称并检查是否选中?比如: if(country.selectedItem.Equals("US") and country.selectedItem is

我有三份家属清单。 1.国家 2.州 3.城市 如果在国家/地区复选框列表中选择了特定国家/地区,我想列出所有国家/地区。同样地,如果我选择了任何一个州,那么相应的城市应该在城市复选框列表中填充

我为每个国家的州创建了单独的函数,并使用以下代码调用它们:

我有以下问题: 1.当复选框未选中时,哪个属性用于检测? 2.如何检查所选州/国家的名称并检查是否选中?比如:

if(country.selectedItem.Equals("US") and country.selectedItem is unchecked....)) {
.......
} 
当国家/地区未选中时,如何删除/清除特定的州/城市,记住不应删除州复选框列表中列出的任何其他国家/地区的州? 这个问题很简单,但有点棘手


谢谢

为每个国家单独设置功能是个糟糕的主意。您应该在代码之外存储数据。考虑使用XML或数据库或JSON存储数据。例如,您可以阅读XML序列化和

将数据从文件加载到内存后,您可以将其放入字典中,如

Dictionary<string, Dictionary<string, List<String>>> data;
//access data   
var cities = data["Canada"]["Ontario"];

我假设country和state是复选框列表对象的名称

至于CheckBoxList的用法——只需实现您的逻辑,就可以描述所有需要的方法。我仍然不确定,您使用的是什么:WPF或WinForms还是什么,但您可以找到合适的文档

SelectedDics和SelectedItems返回复选框列表中的选定元素

您可以这样检查:

var selectedItems = country.SelectedItems;
if (selectedItems.Contains("Canada")
{
//Do what you need
}

首先是Winform还是WPF?那么,最好的解决方案是使用包含国家和州/省的对象。这将允许您从状态列表中删除其国家/地区值与您未选中的国家/地区值相同的所有状态。我正在使用Windows窗体。我仍然不知道如何检查checkboxlist中的复选框是否未选中?你能提供任何链接作为例子吗?谢谢你的主意。是的,国家、州和城市是我清单上的名字。我正在使用Windows窗体。仍然无法确定用于检测checkedListbox中的项是否未选中并提取其值以进行进一步比较的属性/方法?
var states = data[country.selectedItem].Keys;
var cities = data[country.selectedItem][state.selectedItem];
var selectedItems = country.SelectedItems;
if (selectedItems.Contains("Canada")
{
//Do what you need
}