使用特定于UI的值(例如System.Windows.ResizeMode
或System.Windows.WindowState
in)是否错误ViewModel
?我正在使用Caliburn.Micro的WindowManager,该ShowWindow
方法在method中具有视图设置字典。除此以外,我不知道其他任何设置窗口属性的(简单)方法。
Imports Caliburn.Micro
Namespace ViewModels
Public Class MainWindowViewModel
Inherits PropertyChangedBase
Private _windowManager As IWindowManager
Sub New(windowManager As IWindowManager)
_windowManager = windowManager
End Sub
Sub ShowUserControl()
Dim windowSettings As New Dictionary(Of String, Object)
windowSettings.Add("ResizeMode", ResizeMode.NoResize)
_windowManager.ShowDialog(New UserControl1ViewModel, settings:=windowSettings)
End Sub
End Class
End Namespace
在ViewModel中使用特定于UI的值(例如System.Windows.ResizeMode或System.Windows.WindowState)是否错误?
并不是的。这不会破坏MVVM模式。视图模型是视图的模型。是否存在问题主要取决于您是否在几种不同类型的客户端应用程序(例如WPF桌面应用程序和Xamarin移动应用程序)之间共享视图模型类。
在这种情况下,您应该更喜欢从视图模型公开原始类型,然后在每种特定类型的客户端应用程序中使用转换器,以在视图模型类型和相应的视图类型之间进行转换。
但是从理论上讲,就MVVM而言,视图模型不必与基于视图的UI技术无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句