2010-09-01 75 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

相關問題