Joh*_*rby 2 c# wpf mvvm mvvm-light
从视图模型更新模型
我已经阅读了一些关于MVVM的帖子,但我不确定是否理解视图模型更新模型的方式
目前,我在UI中有两个文本框,它们绑定到XAML视图,并在引发事件时调用视图模型.当我更新模型时应该在视图模型中的哪个位置?
这是视图模型
class ViewModel:INotifyPropertyChanged
{
private String _url;
private String _TemplateType;
public string URL
{
get { return _url; }
set
{
if (value != _url)
{
_url= value;
OnPropertyChanged("URL");
}
}
}
public string TemplateType
{
get { return _TemplateType; }
set
{
if (value != _TemplateType)
{
_TemplateType= value;
OnPropertyChanged("URL");
}
}
}
Run Code Online (Sandbox Code Playgroud)
该模型
internal class DefineAddinModel
{
public string TemplateType { get; set; }
public String URL { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
ViewModel通常充当模型的包装器,并包含对模型的引用,该模型可以响应命令或在属性设置器中自动更新.
更新:这是一个让VM充当模型包装器的例子.在您的示例中,这似乎没用,但在很多情况下,您会发现VM的getter/setter需要对值进行某种转换,而不是简单地传递它们.
class ViewModel:INotifyPropertyChanged
{
private DefineAddinModel model;
public string URL
{
get { return model.URL; }
set
{
if (value != model.URL)
{
model.url = value;
OnPropertyChanged("URL");
}
}
}
public string TemplateType
{
get { return model.TemplateType; }
set
{
if (value != model.TemplateType)
{
model.TemplateType = value;
OnPropertyChanged("TemplateType");
}
}
}
Run Code Online (Sandbox Code Playgroud)