我发现自己最近用MVVM模式编写了很多WPF应用程序。一项常见且繁琐的任务是在视图模型中包装域对象。我做了很多:
public class DomainObject
{
public virtual int IntProperty { get; set; }
public virtual string StringProperty { get; set; }
}
public class DomainObjectViewModel : ViewModelBase
{
public int IntProperty
{
get { return DomainObject.IntProperty; }
set
{
if (Equals(value, DomainObject.IntProperty)) return;
DomainObject.IntProperty = value;
OnPropertyChanged(nameof(IntProperty));
}
}
public string StringProperty
{
get { return DomainObject.StringProperty; }
set
{
if (Equals(value, DomainObject.StringProperty)) return;
DomainObject.StringProperty = value;
OnPropertyChanged(nameof(StringProperty));
}
}
}
MVVM本质上需要大量输入。我有一堆实时模板和其他技巧来减少它,但我喜欢的是能够复制我的域对象属性,将它们粘贴到视图模型类,突出显示它们,并根据需要转换它们。有可能吗?