我有一个绑定源,可以绑定到 A 列表或 B 列表。根据它是 A 还是 B,当我单击“保存”时,我想调用相应存储库的保存方法。
我能够创建这个方法来检查是否有任何列表是脏的并且需要保存:
private static bool IsDirty<T>(TList<T> list) where T : IEntity, new()
{
foreach (var entity in list)
{
if (entity.IsDirty)
return true;
}
return false;
}
但是,我遇到以下问题:
var list = CurrentTList<A>();
和
private TList<T> CurrentTList<T>() where T: IEntity, new()
{
switch (currentRatesTable)
{
case RatesTables.A:
return (TList<T>) _bindingSourceMaster.List;
case RatesTables.B:
return (TList<T>) _bindingSourceMaster.List;
default:
return null;
}
}
这是从数据源获取当前列表的最佳方式吗?我想避免使用这样的开关,因为它看起来不适合我:
switch (currentRatesTable)
{
case Form1.RatesTables.A:
var list = CurrentTList<A>();
case Form1.RatesTables.B:
var list = CurrentTList<B>();
// ...
}