我有一个用作viewModel的表。从这一点来看,它应该是我视野中绑定的来源。我的目标是基于另外两个表更新此表/ viewModel。我在每个表checklistTable和AnswerTable中都有一个属性,它将在我的viewModel checkViewModel中设置。
目前我正在查询每个表中需要的当前元素,并尝试更新viewModel。
CodeBehind:
//Curent descriptions to be set in the viewModel
var currentDescription = (_check.Where(s => currentElements.Contains(s.defineId)).Select(s=> s.Description).ToList());
//Current colors to be set in the viewModel
var currentColors = (from current in _answer
where current.questionId == currentCheckId &&
current.buildingId == currentBuildingId
orderby current.dateReported descending
select current.backgroundColor).ToList();
检索theese值后,我尝试更新我的viewModel,这就是出错的地方:
for (int i =0 ; i < currentDescription.Count() - 1; i++)
{
currentViewTable.Description = currentDescription[i];
}
for (int i =0 ; i < currentColors.Count() - 1; i++)
{
currentViewTable.backgroundColor.Insert(i,currentColors[i]);
}
我收到错误:引用未设置为对象的实例。是否有更好的方法来更新我的viewModel,或者我做错了什么提示?
答案 0 :(得分:0)
我首先建议使用foreach循环而不是常规for循环。我发现在使用列表时使用foreach会更容易,这通常会消除任何明显的“一个一个”错误。
foreach (var description in currentDescription)
{
//do something given each element in the list
}
这似乎是一个数据完整性问题,我只能查看您的代码,并给出错误说明的内容。我建议进入调试模式并查看您生成的列表,以查看是否存在两个列表中的对象为空的任何索引,并相应地处理这些实例。