gpt4 book ai didi

c# - MVVM - 退出确认

转载 作者:太空狗 更新时间:2023-10-29 23:52:18 24 4
gpt4 key购买 nike

我正在尝试学习 MVVM,但有些东西我还不明白。

目前,我有这个事件处理程序:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("Are you sure you want to close this application?", "Close??", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
e.Cancel = true;
}
}

非常简单。但是,我想在此应用程序中应用 MVVM 模式。

我在想,我是否应该将此逻辑放在 ViewModel 中而不是直接放在 View 代码中?如果是这样,我应该怎么做?

谢谢

最佳答案

您可以使用自己的 ViewsService,它可以在 ViewModel 中使用并与 View 交互。例如,您可以编写方法 ViewsService.CloseActiveWindow()。在这种情况下,您不需要直接从 ViewModel 而是通过服务类与 View 交互。

另一种方式:使用全局发布/订阅服务。 ViewModel 将发送事件,View 将订阅该事件。如果有多个窗口,您可以检查窗口是否处于事件状态并仅关闭事件窗口。

关于c# - MVVM - 退出确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11102455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com