MVVM的各种教程中通常都指定了MVVM的目标不是消除背后的代码,而在背后的代码中仍可能需要某些事件处理。

在哪些情况下需要在代码隐藏中编写事件而不是在viewmodel中使用命令?

最佳答案

通常,如果您的代码与UI逻辑有关,则将其保留在 View 的XAML或代码隐藏中。 View 模型仅负责在 View 和模型之间桥接和绑定(bind)数据。

在我的一个问题How do I make a WPF window movable by dragging the extended window frame?中可以找到一个示例。我使用的事件之一是SourceInitialized,在其中我访问Window的窗口句柄以执行一些Windows API魔术。但是所有这些都与窗口有关,并且与窗口之外的应用程序逻辑无关,因此我将所有内容都限制在窗口的代码隐藏文件中,而 View 模型完全不了解它。

09-04 14:31
查看更多