我有一组50 CheckBoxes
放置在TabItem
内。点击一个按钮,我需要通过CheckBoxes
环和基于CheckBox.Ischecked
是true
或false
,它的相关变量将被设置为0或1。Loop Through TabItem CheckBoxes
下面是一些代码我一起开始尝试开始;
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
等等等等,我真的不希望有做的是做一个If
循环对所有50 CheckBoxes
并设置其相关Priv
。
我有两个问题,我如何循环遍历TabItem
中的所有50 CheckBoxes
?我如何编码newPrivlegeModel.Priv1
以便它们全部自动更新?例如,newPrivlegeModel.Priv + i
不起作用,所以我该如何解决这个问题?
您可以通过利用WPF的强大约束力的系统解决这一确切的问题:每个复选框的财产器isChecked绑定到其相应的财产EmployeePrivilegeModel。转换器可用于在布尔值和整数之间进行转换。 MVVM模式是在WPF中执行此操作的正统方法。 –
你应该使用收集和绑定 – Paparazzi
我已经开始使用集合并绑定到其他地方,唯一的问题是有5个'TabItems'每个都有50个'CheckBoxes',所以我需要250个绑定元素而不是50个。 – CBreeze