根据数据库中的当前内容,会发生两件事.
如果表buildingDefine不为空,则将此表传递给构造函数.
否则将buildingDefine传递给构造函数.
这是我对数据库的检查:
//Is there content in buildingDefineTable?
if (!_bDefine.Any())
{
int currentBuildingId = ((BuildingTable)((ListView)sender).SelectedItem).Id;
var currentBool = from bla in _building
where bla.Id == currentBuildingId
select bla.BuildingBool;
//Is the buildingBool false?
if (!currentBool.First())
{
var currentBuildingDefine = from BuildingDefineTable in _bDefine
where BuildingDefineTable.buildingId == ((BuildingTable)((ListView)sender).SelectedItem).Id
select BuildingDefineTable;
await Navigation.PushAsync(new DefineBuilding(currentBuildingDefine));
}
else
{
//Do something here.
}
}
//No content in buildingDefineTable
else
{
await Navigation.PushAsync(new DefineBuilding(new IEnumerable<_bDefine> bDefineTable ));
}
Run Code Online (Sandbox Code Playgroud)
if语句工作正常,但是每当数据库不包含表中的任何信息时,我都无法传递表的空列表.
这是我的构造函数:
public DefineBuilding(IEnumerable<BuildingDefineTable> bDefineTable)
{
if (bDefineTable == null) throw new ArgumentNullException();
BindingContext = bDefineTable;
//More code here
}
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
bas*_*hrc 10
var x = new DefineBuilding(Enumerable.Empty<BuildingDefineTable>());
Run Code Online (Sandbox Code Playgroud)