我收到一个未设置为对象实例的"对象引用"尝试将DataTable转换为包含行和列的viewmodel时出错。
public class ViewModel
{
public List<ColumnViewModel> Columns { get; set; }
public List<RowViewModel> Rows { get; set; }
}
public class ColumnViewModel
{
public string Name { get; set; }
}
public class RowViewModel
{
public List<CellValueViewModel> Values { get; set; }
}
public class CellValueViewModel
{
public string Value { get; set; }
}
ViewModel myViewModel = new ViewModel();
CellValueViewModel myCellValueViewModel = new CellValueViewModel();
RowViewModel myRowViewModel = new RowViewModel();
foreach (DataColumn column in GridData.Columns)
{
ColumnViewModel myColumnViewModel = new ColumnViewModel();
myColumnViewModel.Name = column.ColumnName;
myViewModel.Columns.Add(myColumnViewModel);
}
错误发生在myViewModel.Columns.Add(myColumnViewModel);
我不明白为什么会发生这种情况,因为我已经实例化了我在这里使用的每个对象。
答案 0 :(得分:3)
好吧,您从未为Columns
属性分配值。在尝试向此列表添加值之前,请确保已实例化它:
ViewModel myViewModel = new ViewModel();
myViewModel.Columns = new List<ColumnViewModel>();