Как создать новый экземпляр ViewModel внутри класса ViewModel? - PullRequest
0 голосов
/ 01 сентября 2010

Скажем, у меня есть класс 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 (). Когда эта виртуальная машина связывается с пользовательским интерфейсом, я хочу, чтобы пользователь мог изменить модель представления для нового объекта без изменения пользовательского интерфейса.

Но я не могу этого сделать, потому что code this = new MyViewMode (new Person ()); не сработает

Как решить эту проблему?

1 Ответ

0 голосов
/ 02 сентября 2010

Я бы порекомендовал не делать что-то подобное ... Google для view-first или viewmodel first ... Это постоянное обсуждение с множеством мнений, которые действительно имеют смысл.

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

Более подробно я бы посмотрел на шаблон ServiceLocator.В основном это сервис, который создает для вас модели представления ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...