У меня есть приложение 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?