Для этого пользователю необходимо нажать «ОК», вручную нажать кнопку «Отменить изменения» (рядом с кнопкой «Сохранить»), нажать другую кнопку «Вы уверены?» окно сообщения, и только после этого снова перемещайтесь по дереву.
ался заставить мое приложение WPF предлагать пользователям либо отменить свои несохраненные изменения, либо отменить их при переходе с помощью TreeView.
Как я могу отменить пользовательский клик WPF TreeView?Как правильно обработать событие PreviewMouseDown с подтверждением MessageBox?Я думаю, что нашел ошибку. MessageBox не работает хорошо с PreviewMouseDown. Кажется, он «обрабатывает» клик независимо от того, как установлен его e.Handled, если отображается MessageBox.
Для этого XAML ...
<TreeView Name="TreeViewThings"
...
PreviewMouseDown="TreeViewThings_PreviewMouseDown"
TreeViewItem.Expanded="TreeViewThings_Expanded"
TreeViewItem.Selected="TreeViewThings_Selected" >
... сравнить эти альтернативные методы ...
Sub TreeViewNodes_PreviewMouseDown(...) e.Handled = False End Sub Sub TreeViewNodes_PreviewMouseDown(...) MessageBox.Show("Test", "Test", MessageBoxButton.OK) e.Handled = False End Sub
Эти два метода ведут себя по-разному. Без MessageBox,TreeViewNodes_Selected()
или жеTreeViewThings_Expanded()
выполню. С MessageBox они не будут.
Это ошибка или здесь что-то происходит, что я должен понять?