我想學習MVVM,並在我的ViewModel中添加了隱式運算符,它將模型轉換爲ViewModel,反之亦然,但現在的問題是如何將模型列表轉換爲列表ViewModel的?如何將列表轉換爲隱式運算符類型
下面是我試圖使用列表轉換結構代碼,但它不工作:
Person.cs
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
PersonViewModel.cs
class PersonViewModel : Person
{
public string FullName { get; set; }
public static implicit operator List<PersonViewModel>(IList<Person> person)
{
if (person == null)
return null;
return person.Select(c => new PersonViewModel(c)).ToList(); // This is not working
}
public static implicit operator PersonViewModel(Person person)
{
return new PersonViewModel
{
FirstName = person.FirstName,
LastName = person.LastName,
};
}
public static implicit operator Person(PersonViewModel personViewModel)
{
return new Person
{
FirstName = personViewModel.FirstName,
LastName = personViewModel.LastName,
};
}
}
好吧,這可能是愚蠢的問題,但不是你錯過了「新」關鍵詞? –
@ViktorLaCroix編輯我的帖子,但這次它抱怨說「PersonViewModel不包含帶1個參數的構造函數」 – Dishant
並且它包含帶有1個參數的構造函數嗎? :D如果不是,你不想要那麼你應該做一些像person.Select(x => new PersonViewModel(){FullName = c.FullName})。ToList(); –