Bob*_*ock 2 c# oop model-view-controller
我有静态方法,它返回我,因为它的名称来自域模型的数据.
public static List<PropertyViewModel> FromDomainModel(List<Property> x)
{
List<PropertyViewModel> dataVm = new List<PropertyViewModel>();
foreach (Property p in x)
{
dataVm.Add(new PropertyViewModel(p));
}
return dataVm;
}
Run Code Online (Sandbox Code Playgroud)
Bellow是以上FromDomainModel调用的viewmodel ....其他属性......
public List<Photo> Photos { get; set; }
Run Code Online (Sandbox Code Playgroud)
和第一个构造函数
public PropertyViewModel(Property x)
{
Id = x.Id;
...
List<Photo> Photos = new List<Photo>();
foreach (var item in x.Photos)
{
Photos.Add(item);
}
}
Run Code Online (Sandbox Code Playgroud)
在调试模式下,我收集照片,直到它到达FromDomainModel()方法中的行
List<PropertyViewModel> dataVm = new List<PropertyViewModel>();
Run Code Online (Sandbox Code Playgroud)
在行dataVm.Add(new PropertyViewModel(p));p中的调试实际上保持正确的集合.问题是为什么没有在列表dataVm里面传递.
您通过在此行声明具有相同名称的本地变量来隐藏属性Photos:
List<Photo> Photos = new List<Photo>();
Run Code Online (Sandbox Code Playgroud)
通过在名称List<Photo>前使用类型名称Photos,您将声明一个隐藏Property的新变量.
您可以使用实际属性来解决此问题:
Photos = new List<Photo>();
Run Code Online (Sandbox Code Playgroud)
或者,更具体:
this.Photos = new List<Photo>();
Run Code Online (Sandbox Code Playgroud)