<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); } } } }