WPF: O MessageBox quebra o PreviewMouseDown?
Eu tenho tentado fazer com que meu aplicativo WPF solicite aos usuários que descartem suas alterações não salvas ou cancelem quando navegam usando um TreeVie
Como posso cancelar o clique no WPF TreeView de um usuário?Como lidar adequadamente com um evento PreviewMouseDown com uma confirmação MessageBox?Acho que encontrei um bug. O MessageBox não funciona bem com o PreviewMouseDown. Parece "manipular" um clique, independentemente de como seu e.Handled é definido se houver uma MessageBox exibida.
Para este XAML ...
<TreeView Name="TreeViewThings"
...
PreviewMouseDown="TreeViewThings_PreviewMouseDown"
TreeViewItem.Expanded="TreeViewThings_Expanded"
TreeViewItem.Selected="TreeViewThings_Selected" >
... compare esses métodos alternativos ...
Sub TreeViewNodes_PreviewMouseDown(...) e.Handled = False End Sub Sub TreeViewNodes_PreviewMouseDown(...) MessageBox.Show("Test", "Test", MessageBoxButton.OK) e.Handled = False End Sub
Esses dois métodos se comportam de maneira diferente. Sem a MessageBox,TreeViewNodes_Selected()
ouTreeViewThings_Expanded()
será executado. Com o MessageBox, eles não vã
Isso é um bug ou há algo acontecendo aqui que eu deveria entender?