2010-11-18 22 views
0

Her düğümde bir onay kutusu içeren TreeView'e sahip bir WPF penceresi var. Onay kutularının durumunu yakalayabilmek istiyorum ama nasıl olduğunu bilmiyorum.(WPF VB.Net) TreeView içine yerleştirilmiş bir Checkbox durumu nasıl alınır?

<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> 

Ve VB Kodu:

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 

teşekkür Burada

(ı XML kodunun çok yazmadan bunu çalışıyorum) I XML ne var yardım için!

cevap

1
... 
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 
İlgili konular