Mega Code Archive

 
Categories / C# / WPF
 

Use Linq to get checked CheckBox

<Window x:Class="WpfApplication1.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="WPF" Height="250" Width="300">     <StackPanel Name="panel">         <CheckBox Checked="CheckBox_Checked" Content="First CheckBox"                    IsChecked="True" Margin="2" Name="checkbox1"                    />         <Button Content="Get Selected" Margin="5" MaxWidth="100"                  Click="Button_Click" />         <TextBlock FontWeight="Bold" Text="Selected CheckBoxes:" />         <ListBox Margin="5" MinHeight="2cm" Name="listbox" />     </StackPanel> </Window> //File:Window.xaml.cs using System.Linq; using System.Windows; using System.Windows.Controls; namespace WpfApplication1 {     public partial class Window1 : Window     {         public Window1()         {             InitializeComponent();         }         private void Button_Click(object sender, RoutedEventArgs e)         {             listbox.Items.Clear();             foreach (CheckBox checkbox in panel.Children.OfType<CheckBox>().Where( cb => cb.IsChecked == true))             {                 listbox.Items.Add(checkbox.Name);             }         }         private void CheckBox_Checked(object sender, RoutedEventArgs e)         {             if (!IsInitialized) return;             CheckBox checkbox = e.OriginalSource as CheckBox;             if (checkbox != null)             {                 MessageBox.Show(checkbox.Name + " is checked.", Title);             }         }     } }