ViewModel中特定于UI的值

翁德里

使用特定于UI的值(例如System.Windows.ResizeModeSystem.Windows.WindowStatein)是否错误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
毫米8

在ViewModel中使用特定于UI的值(例如System.Windows.ResizeMode或System.Windows.WindowState)是否错误?

并不是的。这不会破坏MVVM模式。视图模型是视图的模型。是否存在问题主要取决于您是否在几种不同类型的客户端应用程序(例如WPF桌面应用程序和Xamarin移动应用程序)之间共享视图模型类。

在这种情况下,您应该更喜欢从视图模型公开原始类型,然后在每种特定类型的客户端应用程序中使用转换器,以在视图模型类型和相应的视图类型之间进行转换。

但是从理论上讲,就MVVM而言,视图模型不必与基于视图的UI技术无关。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档