循环浏览选项卡项复选框
本文关键字:复选框 选项 浏览 循环 | 更新日期: 2023-09-27 18:29:14
我有一组50个CheckBoxes
,它们放在TabItem
内。单击按钮时,我需要循环浏览CheckBoxes
,根据CheckBox.Ischecked
是true
还是false
,它的相关变量将设置为0或1。
以下是我开始尝试的一些代码;
private void ApplyPrivilegeUpdateClick(object sender, RoutedEventArgs e)
{
var newPrivilegeModel = new EmployeePrivilegeModel();
int i = 0;
foreach (CheckBox c in companiesTabItem)
{
if (c.IsChecked == true)
{
newPrivilegeModel.Priv1 = 1;
}
i++;
}
}
newPrivlegeModel.Priv1
-这会上升到Priv50
,所以Priv1, Priv2, Priv3
等等。我真正不想做的是为所有50个CheckBoxes
做一个If
循环,并设置它们的相关Priv
。
我有两个问题,如何循环通过TabItem
中的所有50个CheckBoxes
?我如何对newPrivlegeModel.Priv1
进行编码,以便它们都自动更新?例如,newPrivlegeModel.Priv + i
不起作用,那么我该如何绕过它呢?
为什么不使用Dictionary
而不是ofEmployeePrivilegeModel
´?
我有一组50个复选框,放在一个TabItem中。单击按钮时,我需要循环检查复选框,并根据CheckBox.Ischecked是true还是false,它的相关变量将设置为0或1。
以下是我开始尝试的一些代码;
private void ApplyPrivilegeUpdateClick(object sender, RoutedEventArgs e)
{
var newPrivilegeModel = new Dictionary<string,int>();
int i = 0;
foreach (CheckBox c in companiesTabItem)
{
if (c.IsChecked == true)
{
if(newPrivilegeModel.ContainstKey("Priv"+(i + 1).ToString())){
newPrivilegeModel["Priv"+(i + 1).ToString()]=1;
}
else
{
newPrivilegeModel.Add("Priv"+(i + 1).ToString(),1);
}
}
i++;
}
}
向EmployeePrivilegeModel类添加一个数组或列表以保存所有值。
var newPrivilegeModel = new EmployeePrivilegeModel();
newPrivilegeModel.PrivList = new List<bool>();
foreach (CheckBox c in companiesTabItem)
{
if (c.IsChecked == true)
{
newPrivilegeModel.PrivList.Add(1);
}
else
{
newPrivilegeModel.PrivList.Add(0);
}
}