2

所以我打算编写一个主要是无窗口应用程序的应用程序。会有用于用户交互的窗口,但仅限于用户的请求。否则,应用程序将位于系统托盘中并运行一个计时器,每分钟左右执行一些逻辑。我的问题是:据我所知,我会将所有相关逻辑放在 App.xaml.cs 中(启动计时器,在每个间隔执行逻辑),但由于某种原因,这对我来说似乎是错误的。

该应用程序将有一个系统托盘图标,用户可以与之交互以获取详细信息、调整设置等,但除此之外,该应用程序只是坐在那里并做它所做的事情。将所有代码放在 App.xaml 类的代码隐藏中是否合适?我不知道为什么,但似乎我不应该,而且应该有别的地方,但我真的什么都想不起来。

我以前从未写过这样的应用程序,因此我的无知。任何建议将不胜感激。谢谢。

詹姆士

4

2 回答 2

2

即使对于大多数交互是通过 Windows 完成的应用程序,将所有代码都放在代码后面通常是一个坏主意。交互通常是在后面的代码中启动的事件处理程序,但您可以将代码放在您自己创建的类中。

大多数时候不显示用户界面的应用程序也是如此。大多数操作将从 App.xaml.cs 启动,但这并不意味着所有代码都必须在那里。例如,您可以将计时器封装在它们自己的类中,这些类可以启动其他代码来完成工作。将代码按照职责划分,窗口类处理 UI 内容,域逻辑进入其他文件等。这将使您能够创建更可维护的应用程序。

于 2009-06-22T20:12:10.987 回答
1

听起来代码不属于那里,最多只是一个启动计时器的调用。MV-VM(模型 - 视图 - 视图模型)模式听起来非常适合您的问题。正如您所指出的,它也会“感觉”更正确,然后将逻辑附加到您的代码后面。使用 MVVM 你可以将你的稀疏 UI 分离到一个 View 中,你的代码可以分别存在于 Model 和 ViewModel 中。

我建议在此处使用该工具包,因为它还包含很好的概述文档和一个示例,您可以在创建自己的解决方案时消化。Laurent Bugnion还发布了一个 MVVM 入门工具包,您可以使用它来入门。

此外,这里有一些好东西可以帮助您开始在系统托盘中实际设置控件。

于 2009-06-22T20:14:49.283 回答