【发布时间】:2013-01-21 23:47:05
【问题描述】:
我对 WPF 和 MVVM 还很陌生。我创建了几个标准的简单 WPF/MVVM 应用程序,它们显示启动屏幕并根据主窗口中的命令进行处理,包括显示其他用户控件。
但是现在我想制作一个 WPF/MVVM 监控/输入收集应用程序,它在不显示窗口的情况下启动,循环检查系统状态,直到条件需要显示窗口,然后才显示一个窗口,然后处理用户输入并返回循环。用户不会等待这个窗口,因为它只在有需要用户注意的事情时显示。它会“永远”在后台运行,只在需要时才显示自己。
我发现我可以创建自己的 Main() 方法,但我仍然无法找出将其保留在 MVVM 中的最佳方法,但只能在更大的循环中根据需要显示窗口。
谢谢!
编辑——我们终于做了一件理智的事情,做了两个不同的过程,一个做监控,一个做 WPFing。谢谢大家!
【问题讨论】:
-
您可以在窗口打开之前在 app.xaml.cs 文件中进行处理,但要注意这需要多长时间。用户往往会认为有什么问题是他们在 2 秒内没有看到启动应用程序的响应。或许可以考虑一个信息窗口,例如斜线屏幕。
-
谢谢,但它更像是一个用户通常不会看到的后台进程——更多的是弹出来表示需要注意,而通常不需要注意。如果我在显示窗口之前在 app.xaml.cs 中进行了处理,那么在第一次处理错误后,我将如何重新监控错误情况?
-
使用某种通知窗口(又名 Toast)?它在 WPF 中不可用(就像在 WinForm 中一样),但人们已经创建了类似的东西,您可以使用:codeproject.com/Articles/22876/…
-
您可以创建自己的窗口管理系统,该系统允许传递一个参数,告诉它在拥有所需的一切之前不要加载,然后才显示视图。然而,这将是一段棘手的小代码。
-
是的,我同意让 Windows 服务显示一个窗口是个坏主意。然而,这就是她所描述的,我不是来判断的。更好的方法是创建一个 Windows 托盘应用程序,但同样,只是针对此处描述的要求提供建议。