2015-05-24 2 views
1

Я строю приложение C# WPF со многими CheckBoxes в нем, содержащееся в разных сетках. Вот пример кода XAML:Найти свойство управления по имени

<Grid x:Name="grid1"> 
    <CheckBox x:Name="box1" Content="Box 1"/> 
</Grid> 
<Grid> 
    <Grid x:Name="grid4"> 
    <CheckBox x:Name="box12" Content="Box 12"/> 
    </Grid> 
</Grid> 

и так далее.

В коде-за мне нужно получить список коробок с имуществом IsChecked = «True» на count_btn_Click()

Я пробовал все, что мог, и не нашел ничего. (Пожалуйста, помните, что я просто любитель, поэтому, если возможно, добавьте больше описания).

UPD1 (к комментарию Чарльза Магера): Есть ли более простой способ? Например. если у меня есть предопределенный список имен флажков.

+0

используйте коллекцию * Controls * и сначала проверьте, что каждый элемент управления является флажком. –

+0

@PieterGeerkens нет коллекции 'Controls' в WPF. Вам нужно что-то вроде [this] (http://stackoverflow.com/questions/974598/find-all-controls-in-wpf-window-by-type) –

ответ

0

, если у меня есть предопределенный список имен Флажки

Как бы вы получить, что предопределенный список?

Одним из примеров может выглядеть следующим образом:

class MainWindow : Window 
{ 
    private CheckBox[] _checkBoxes; 

    public MainWindow() 
    { 
     InitializeComponent(); 

     _checkBoxes = 
     { 
      box1, 
      box12, 
      // etc. 
     }; 
    } 
} 

Тогда вы должны быть в состоянии получить перечисление объектов с помощью простой LINQ фильтр:

_checkBoxes.Where(x => x.IsChecked); 

Например:

foreach (CheckBox checkBox in _checkBoxes.Where(x => x.IsChecked)) 
{ 
    // do something with each checkBox value 
} 

Надеюсь, вышесказанное заставляет вас указывать в правильном направлении. Невозможно дать конкретные рекомендации без a good, minimal, complete code example, что ясно показывает, что вы пытаетесь выполнить; если приведенное выше не кажется достаточно полезным, отредактируйте свой вопрос, чтобы он включал в себя достаточно подробностей, чтобы понять, с чем вам действительно нужна помощь.

+0

Это было действительно полезно, спасибо большое! – MullinsMikey

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