Creating a simple CheckListBox control in WPF
With .NET Framework 3.0 Microsoft has removed one control that I’ve liked and used a lot – the CheckListBox. But on the other hand with WPF the developer can easily create his own check list control. Here is how to create one yourself.
Put a simple ListBox in your window:
XAML:
<Window x:Class="winCustomPKChooser"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CheckListBox Demo"
Height="300" Width="300"
>
<ListBox x:Name="lstCheckListBox"
Height="185"
/>
</Window>
The trick is that we will not add simple items to the list box, but instead of that we will add check boxes. Here is a simple function which adds items to our ListBox and hooks the corresponding events for when items get checked or unchecked:
VB:
Private Sub AddItemsToListBox()
Dim chkCheckBoxToAdd as CheckBox
For nLoop as Integer = 1 to 10
chkCheckBoxToAdd = New CheckBox()
chkCheckBoxToAdd.IsChecked = False
chkCheckBoxToAdd.Content = "Item " & nLoop.ToString()
AddHandler chkCheckBoxToAdd.Checked _
, AddressOf lstColumnName_ItemCheck
AddHandler chkCheckBoxToAdd.Unchecked _
, AddressOf lstColumnName_ItemUncheck
lstColumnName.Items.Add(chkCheckBoxToAdd)
Next
End Sub
Private Sub lstColumnName_ItemCheck(ByVal sender As Object _
, ByVal e As System.Windows.RoutedEventArgs _
)
'Do something when an item gets checked.
'If you need for something the checkbox
'which was checked use the CType(e.OriginalSource, CheckBox).
End Sub
Private Sub lstColumnName_ItemUncheck(ByVal sender As Object _
, ByVal e As System.Windows.RoutedEventArgs _
)
'Do something when an item gets unchecked.
'If you need for something the checkbox
'which was unchecked use the CType(e.OriginalSource, CheckBox).
End Sub
Enjoy your own CheckListBox!
The text in the text boxes are not rendering properly. Can’t see the code.
Fixed it. Thanks for the heads up!
peter,
thanks a lot , i m new to wpf and this helps me a lot. On the final day of release, i solved problem coz of you man….
– Bhavin Patel