У меня есть приложение WPF с элементом управления Treeview.
Когда пользователь нажимает на node на дереве, другие элементы управления TextBox, ComboBox и т.д. на странице заполняются соответствующими значениями.
Затем пользователь может внести изменения в эти значения и сохранить свои изменения, нажав кнопку "Сохранить".
Однако, если пользователь выбирает другой Treeview node, не сохраняя его или ее изменения, я хочу отобразить предупреждение и возможность отменить этот выбор.
XAML...
<TreeView Name="TreeViewThings"
...
TreeViewItem.Unselected="TreeViewThings_Unselected"
TreeViewItem.Selected="TreeViewThings_Selected" >
Visual Basic...
Sub TreeViewThings_Unselected(ByVal sender As System.Object, _
ByVal e As System.Windows.RoutedEventArgs)
Dim OldThing As Thing = DirectCast(e.OriginalSource.DataContext, Thing)
If CancelDueToUnsavedChanges(OldThing) Then
'put canceling code here
End If
End Sub
Sub TreeViewThings_Selected(ByVal sender As System.Object, _
ByVal e As System.Windows.RoutedEventArgs)
Dim NewThing As Thing = DirectCast(e.OriginalSource.DataContext, Thing)
PopulateControlsFromThing(NewThing)
End Sub
Как я могу отменить эти события unselect/select?
Обновление: я задал следующий вопрос...
Как правильно обработать событие PreviewMouseDown с подтверждением MessageBox?