2010-09-01 116 views
0

说我有ViewModel类MyViewModel,如:如何在ViewModel类中创建一个新的ViewModel实例?

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此视图模式中创建新实例()。 当这个虚拟机绑定到用户界面时,我希望用户可以在不更改用户界面的情况下更改新实体的视图模型。但我不能这样做,因为代码this = new MyViewMode(new Person());我不能这样做,因为代码this = new MyViewMode(new Person());我不能这样做,将无法工作。

如何解决此问题?

+0

虽然普遍接受的看法知道它是什么显示视图模型,视图模型不应该有知识显示它的视图。可能需要一种不同的方法。你能提供更多关于你想要完成的信息吗? – 2010-09-01 20:40:08

回答

0

我建议不要做这样的事情... 谷歌收视第一或视图模型第一... 这是意见这真的是有道理的很多的一个持续的讨论。

http://wildermuth.com/2009/05/22/Which_came_first_the_View_or_the_Model

进一步我会考虑的服务定位的模式。 Basicaly它为您创建的ViewModels服务...

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

相关问题