Quantcast
Viewing all articles
Browse latest Browse all 256

[RESOLVED] WPF CheckedListBox - CheckedChanged Event

I've created a simple checked list box for use in my WPF application. Annoyingly, I can't quite pin down how to get my form to listen for a CheckedChanged event firing for any of the items in the list box.

My code is as follows. Firstly, a class to hold the CheckedListItems:
Code:

Imports System.ComponentModel

Public Class CheckedListItem(Of T)
    Implements INotifyPropertyChanged

    Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
    Private _IsChecked As Boolean
    Private _Item As T

    Public Sub New()
    End Sub

    Public Sub New(item As T, Optional isChecked As Boolean = False)
        Me._Item = item
        Me._IsChecked = isChecked
    End Sub

    Public Property Item() As T
        Get
            Return _Item
        End Get
        Set(value As T)
            _Item = value
            RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Item"))
        End Set
    End Property

    Public Property IsChecked() As Boolean
        Get
            Return _IsChecked
        End Get
        Set(value As Boolean)
            If Not _IsChecked = value Then
                _IsChecked = value
                RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("IsChecked"))
            End If
        End Set
    End Property

End Class

Code in my window:
Code:

Class ProgressWindow
    Implements INotifyPropertyChanged

    Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged

    Private _CycleJobItems As ObservableCollection(Of CheckedListItem(Of CycleJob))
    Public Property CycleJobItems() As ObservableCollection(Of CheckedListItem(Of CycleJob))
        Get
            Return _CycleJobItems
        End Get
        Set(value As ObservableCollection(Of CheckedListItem(Of CycleJob)))
            _CycleJobItems = value
        End Set
    End Property

My XAML:
Code:

        <ListBox Name="clbCycleJobs" ItemsSource="{Binding CycleJobItems}" Margin="98,76,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="167" Height="134">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <CheckBox Height="16" IsChecked="{Binding IsChecked}" Content="{Binding Path=Item.JobName}" IsTabStop="False" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Anyone got any ideas about the last piece of the jigsaw?

Thanks...

Viewing all articles
Browse latest Browse all 256

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>