gpt4 book ai didi

wpf - 错误窗口在 MVVM WPF 中显示模式

转载 作者:行者123 更新时间:2023-12-04 12:01:53 25 4
gpt4 key购买 nike

我已经将我的 MVVM 错误消息实现为一个消息对话框,它通过中介类订阅错误消息,以便其他 View 模型可以在发生任何错误时通知它。

当发生错误时,我将 viewmodel 中的可见性属性设置为 Visible,以显示错误窗口。这一切都绑定(bind)在 View 模型的错误窗口中。

但是,这个窗口不是模态的!我需要将其显示为对话框,而不仅仅是将可见性设置为 true - 即使我必须扩展窗口的功能,我可以做任何类型的绑定(bind)吗?如果可以避免,我宁愿不破坏 MVVM。

谢谢!

最佳答案

View/ViewModel 拆分旨在将外观与功能分开。我坚信 Window 是功能性的,并且看起来合二为一。例如,如果在您的 ErrorMessageViewModel 中,您有以下代码在出现错误时执行:

class WindowViewModel : Window
{
}

.
.
.

WindowViewModel newDialog = new WindowViewModel();
newDialog.Content = myErrorListViewModel;
newDialog.Parent = mainWindowViewModel;
newDialog.ShowDialog();

所以对话框的内容就是你的错误列表的 ViewModel。将您的 View 定义为自动将自身应用于错误列表 ViewModel 的数据模板。

这看起来不像 MVVM 吗?

事实上,Window 类是您在屏幕上看到的 Window 的 ViewModel。通过更改 Window 对象的属性,它会影响“ View ”,就像 WindowView 的属性绑定(bind)到 WindowViewModel 一样。唯一缺少的是使用 WPF“重新设计”窗口的能力,无论你多么努力地实现它,你都无法做到这一点。用户可以通过修改其桌面主题来重新设置 Window 的样式,但您无法控制它。您能做的最好的事情就是关闭 chrome 和/或使其全屏显示。

关于wpf - 错误窗口在 MVVM WPF 中显示模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321346/

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