开发者

(WPF VB.Net) How to get the state of a Checkbox that is nested inside a TreeView?

I have a WPF window with a TreeView that contains a checkbox at each node. I want to be able to capture the state of the checkboxes but I don't know how. (I am trying to do this without writing much of the code in XML)

Here is what I have in the XML:

<TreeView Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="1" Height="200" HorizontalAlignment="Left" Margin="126,299,0,0" Name="TreeView1开发者_开发百科" VerticalAlignment="Top" Width="220" ItemsSource="{Binding}" DataContext="{Binding}">
</TreeView> 

And in the VB Code:

Dim site As ELSite
Dim sites() As ELSite

Dim parentCheckbox = New CheckBox
Dim parentNode = New TreeViewItem

parentCheckbox.Content = "All Sites"
parentNode.Header = parentCheckbox

For Each osite In sites
 Dim childNode = New TreeViewItem
 Dim childCheckbox = New CheckBox
 childCheckbox.Content = osite.SiteName.ToString
 childNode.Header = childCheckbox
 parentNode.Items.Add(childNode)
Next

TreeView1.Items.Add(parentNode)

Private Sub TreeView1_SelectedItemChanged(ByVal sender As System.Object, ByVal e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Object)) Handles TreeView1.SelectedItemChanged

'This event doesn't seem to occur when I check or uncheck a checkbox

End Sub

Thanks for the help!


...
For Each osite In sites
   Dim childNode = New TreeViewItem
   Dim childCheckbox = New CheckBox

   ' add this to your code '
   AddHandler childCheckBox.Checked, AddressOf chkbox_Checked
   AddHandler childCheckBox.Unchecked, AddressOf chkbox_Unchecked
   '-----------------------'

   childCheckbox.Content = osite.SiteName.ToString
   childNode.Header = childCheckbox
   parentNode.Items.Add(childNode)
Next
...


Private Sub chkbox_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim chk = DirectCast(sender, CheckBox)
    ' Do whatever needs to be done when chk has been checked '
End Sub

Private Sub chkbox_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim chk = DirectCast(sender, CheckBox)
    ' Do whatever needs to be done when chk has been unchecked '
End Sub
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜