如何在ViewModel类中创建一个新的ViewModel实例?

时间:2010-09-01 16:33:34

标签: silverlight viewmodel

说我有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());不行。

如何解决此问题?

1 个答案:

答案 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