(WPF VB.Net) Как получить состояние флажка, вложенного в TreeView? - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть окно WPF с TreeView, которое содержит флажок на каждом узле.Я хочу иметь возможность фиксировать состояние флажков, но я не знаю как.(Я пытаюсь сделать это без написания большей части кода в XML)

Вот что я имею в 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> 

И в коде VB:

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

Спасибо за помощь!

1 Ответ

1 голос
/ 18 ноября 2010
...
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...