是否可以在没有模型的情况下拥有视图和视图模型
本文关键字:模型 视图 情况下 拥有 是否 | 更新日期: 2023-09-27 18:32:44
当我读到这一行时:
视图模型不仅公开模型,还公开其他属性(如状态信息,如"忙"指示器)和命令。
http://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explained
我想知道视图上的当前设置是否应被视为视图的属性或状态的一部分并放置在视图模型中。
例如,我目前有一个首选项窗口绑定到包含当前颜色的视图模型,其中一堆颜色选择器绑定到视图模型。然后,命令取消更改并重新应用旧设置(如果单击"确定"或"取消"。
当前颜色应该是视图上的属性,还是它们的当前位置正常?
public class PreferencesWindowViewModel:DependencyObject
{
private DelegateCommand updatePreferencesCommand;
public ICommand UpdatePreferencesCommand
{
get { return updatePreferencesCommand; }
}
private DelegateCommand cancelCommand;
public ICommand CancelCommand
{
get { return cancelCommand; }
}
public Color HighValuePenColor
{
get { return (Color)GetValue(HighValuePenColorProperty); }
set
{
SetValue(HighValuePenColorProperty, value);
}
}
我喜欢它们在视图模型上。原因很简单,此功能可在单元测试工具中进行测试。如果他们在视图上,你将不得不跳过更多的箍来测试它。在我看来,视图模型应该包含大部分表示逻辑。颜色及其与某些应用程序状态的关系属于该类代码。