说我有ViewModel类MyViewModel,如:
public class MyViewModel : ViewModelBase
{
private Person _person;
public Person Person
{
get { return _person; }
set
{
if (this._person != value)
{
this._person = value;
this.RaisePropertyChanged("Person");
}
}
}
private AddNew(){
this = new MyViewMode(new Person());
}
}
我想要的是尝试在方法AddNew()中在此视图模式下创建新实例。 当此VM绑定到UI时,我希望用户可以在不更改UI的情况下更改新实体的viewmodel。
但我不能这样做,因为代码this = new MyViewMode(new Person());不行。
如何解决此问题?
答案 0 :(得分:0)
我建议不要做这样的事...... 谷歌首先是view-first或viewmodel ...... 这是一个持续的讨论,其中很多意见都是有道理的。
http://wildermuth.com/2009/05/22/Which_came_first_the_View_or_the_Model
我将进一步研究ServiceLocator的模式。 Basicaly一个为您创建视图模型的服务......
http://johnpapa.net/silverlight/simple-viewmodel-locator-for-mvvm-the-patients-have-left-the-asylum/ http://csharperimage.jeremylikness.com/2010/03/viewmodel-binding-with-managed.html