当我在列表中添加新对象时,如何改进这种方法

本文关键字:何改进 方法 对象 列表 添加 新对象 | 更新日期: 2023-09-27 18:28:50

我的应用程序使用MVVM。

这是我的场景。我有一个ViewModel,其中包含ObservableCollection<Person>AddPersonCommand的委托命令。

Person类包含FirstName、LastName和Age。在我看来,我放置了三个文本框,并将每个文本框绑定到个人的属性。即

  • TextBox1:绑定名字
  • 文本框2:绑定姓氏
  • 文本框3:装订年龄

所以我的ViewModel暴露了:

  • FirstName:string
  • 姓氏:string
  • 年龄:int
  • 人员:ObservableCollection

当我使用委托命令时,我会是这样的:

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

但我认为这种方法是多余的。我的意思是,我不想从模型中复制每个属性,我认为有更好的方法可以做到这一点。

当我在列表中添加新对象时,如何改进这种方法

不要在视图模型中使用FirstName、LastName和Age。只需使用Person对象。那么你的代码就是:

Persons.Add(this.Person);

看起来您的视图模型中有单独的Person属性以便于绑定。这没必要。与其绑定到视图模型的LastName属性,不如绑定到视图模式的Person.LastName.AndPerson.FirstName.Andperson.Age.