Как получить все отмеченные флажки в WPF? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытался найти решение этой проблемы, но мне не удалось.Я нашел только решения для WinForms, которые не работают для WPF.

У меня есть простая форма, на которой есть несколько флажков.Я хочу знать, какие флажки отмечены.Единственный способ, которым я знаю, это создать метод для каждого флажка, например

"Checkbox1_Checked(object sender, RoutedEventArgs e)" 

, и добавить имя флажка в список (и удалить его из списка, если флажок не установлен).

Есть ли какой-нибудь другой способ получить все отмеченные флажки?Что-то вроде

foreach (var cb in this.Controls)
{
    if (cb is Checkbox && cb.IsCheked()) // blablabla
}

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать LINQ для этого.Предполагая, что вы назвали родительский элемент управления, например, grid.

var list = this.grid.Children.OfType<CheckBox>().Where(x => x.IsChecked == true);

Или, если вы не хотите его называть, - предполагая, что ваш контейнер получен из Panel (например, Grid,StackPanel ...) - просто разыграйте это так

var list = (this.Content as Panel).Children.OfType<CheckBox>().Where(x => x.IsChecked == true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...