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.vb Imports System.Linq Imports System.Windows Imports System.Windows.Controls Namespace WpfApplication1 Public Partial Class Window1 Inherits Window Public Sub New() InitializeComponent() End Sub Private Sub Button_Click(sender As Object, e As RoutedEventArgs) listbox.Items.Clear() For Each checkbox As CheckBox In panel.Children.OfType(Of CheckBox)().Where(Function(cb) cb.IsChecked = True) listbox.Items.Add(checkbox.Name) Next End Sub Private Sub CheckBox_Checked(sender As Object, e As RoutedEventArgs) If Not IsInitialized Then Return End If Dim checkbox As CheckBox = TryCast(e.OriginalSource, CheckBox) If checkbox IsNot Nothing Then MessageBox.Show(checkbox.Name & " is checked.", Title) End If End Sub End Class End Namespace