在MVVM的各种教程中经常会指出,MVVM的目标不是消除代码隐藏,并且代码隐藏中的一些事件处理可能仍然是必要的。
在什么场景下您需要在代码隐藏中编写事件而不是在视图模型中使用命令?
一般来说,如果您的代码与 UI 逻辑相关,请将其保留在视图的 XAML 或代码隐藏中。视图模型只负责在视图和模型之间桥接和绑定数据。
可以在我的一个问题中找到一个例子,如何通过拖动扩展窗口框架来使 WPF 窗口可移动? https://stackoverflow.com/questions/5493149/how-do-i-make-a-wpf-window-movable-by-dragging-the-extended-glass-frame我使用的事件之一是SourceInitialized
,其中我访问Window
的窗口句柄来执行一些 Windows API 魔法。但所有这些都与窗口相关,与窗口之外的应用程序逻辑无关,因此我将其全部限制在窗口的代码隐藏文件中,使视图模型完全不了解它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)