Как улучшить этот подход, когда я добавляю новый объект в список? - PullRequest
0 голосов
/ 25 марта 2012

Я использую MVVM для своего приложения.

Это мой сценарий. У меня есть ViewModel, в нем содержится ObservableCollection<Person> и команда делегата для AddPersonCommand.

Person класс содержит FirstName, LastName и Age. На мой взгляд, я поместил три текстовых поля и привязал каждое из них к свойствам человека. И.Е.

  • TextBox1: Binding FirstName
  • TextBox2: Binding LastName
  • TextBox3: обязательный возраст

Итак, мои ViewModel разоблачают:

  • Имя: строка
  • Фамилия: строка
  • Возраст: int
  • Персоны: ObservableCollection

И когда я использую команду делегата, я буду выглядеть так:

public void AddPersonCommand()
{
    Person newPerson = new Person()
    {
        FirstName = _firstName,
        Last... ,
        Age = ...
    };

    Persons.Add(newPerson);
}

Но я полагаю, что этот подход является излишним. Я имею в виду, что я не хочу копировать каждое свойство из модели, я предполагал, что есть лучший способ сделать это.

1 Ответ

1 голос
/ 25 марта 2012

Не используйте FirstName, LastName и Age в вашей модели представления. Просто используйте объект Person. Тогда ваш код будет просто:

Persons.Add(this.Person);

Похоже, у вас есть отдельные свойства Person в вашей модели представления для облегчения привязки. Это не нужно. Вместо привязки к свойству LastName модели представления, привязка к Person.LastName модели представления. И Person.FirstName. And Person.Age.

...