2010-03-28 2 views
1

Возникает набор флажка в StackPanel, я хочу, чтобы получить флажок в моем коде ..установлен флажок в МОФ

, как я могу получить этот флажок в StackPanel

+0

Не уверен, что ваш сценарий, но если эти флажки обозначают точки данных (например, которые утверждаются заказы на поставку) вместо того, чтобы контроль с определенной поведенческой целью, в WPF проще и более идиоматично использовать привязку данных ItemsControl или ListBox, с CheckBox как часть своего DataTemplate. – itowlson

ответ

1

Вы можете запросите дочерние элементы стека.

IEnumerable<CheckBox> selectedBoxes = 
    from checkbox in this.stackPanel1.Children.OfType<CheckBox>() 
    where checkbox.IsChecked.Value 
    select checkbox; 

foreach (CheckBox box in selectedBoxes) 
{ 
    // do something 
} 

же запрос в виде лямбды-

IEnumerable<CheckBox> selectedBoxes = 
    this.stackPanel1.Children.OfType<CheckBox>() 
    .Where(cb => cb.IsChecked.Value); 
+1

Вы можете сделать это проще с оператором OfType: 'from cb in stackPanel1.Children.OfType () где cb.IsChecked.Value выберите cb'. Сохраняет тест в предложении 'where' и повторных нажатиях. – itowlson

+0

Хорошая идея. Я обновлю его. –

+0

hai itowlson, Я не могу понять, что вы говорите. могу ли я рассказать мне более подробно ... –

Смежные вопросы