У меня есть группа из 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
.
У меня есть две проблемы, как мне пройти через все 50 CheckBoxes
в TabItem
? И как я могу закодировать newPrivlegeModel.Priv1
, чтобы все они были автоматически обновлены? Например, newPrivlegeModel.Priv + i
не работает, так как я могу обойти это?
Вы можете решить эту проблему, используя мощную систему привязки WPF: привяжите каждое свойство IsChecked к своему соответствующему свойству EmployeePrivilegeModel. Конвертер может использоваться для перевода между булевыми и целыми числами. Шаблон MVVM - это ортодоксальный подход к этому в WPF. –
Вы должны использовать сбор и привязку – Paparazzi
Я начал использовать коллекции и привязку в другом месте, единственная проблема заключается в том, что существует 5 'TabItems' с 50' CheckBoxes', поэтому мне понадобится 250 связующих элементов вместо 50. – CBreeze