我认为这不是最好的方法,但这是我能想到的唯一方法。
我有这个WPF UserControl,它通过菜单项调用(单击菜单并打开UserControl)。
用户可以在UserControl上执行许多操作,并跟踪所做的更改(通过EF和在用户进行任何更改时设置为true的变量)。
现在,我知道我做错了。我希望UserControl检查是否有更改或添加。
我把它放在Unloaded事件触发器中。
Private Sub TheUserControl_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
If (changesMade) Then
Dim answer = MessageBox.Show("Changes have been.....", "Alert", MessageBoxButton.OKCancel)
If (answer = MessageBoxResult.OK) Then
If (saveChanges() = False) Then
'stop unloading???
End If
Else
MessageBox.Show("Discarding changes.")
End if
End if
End Sub
我意识到我把它放在错误的EventControl中,但我不知道将它放在哪个事件控件中。
所以现在我问,我在哪里可以进行“检查”以确保如果用户离开此页面(通过点击菜单中的其他项目),他们将被要求保存之前所做的更改UserControl关闭,如果保存中发生错误,它将停止UserControl的卸载。
感谢。