我有型号这样覆盖两个收集 - 模式
interface IStudent {
string Name;
List<Subjects> Marks;
int RollNumber;
}
class ViewModel {
ObservableCollection<IStudent> FromExcel;
ObservableCollection<IStudent> FromDB;
}
我需要将这两个集合的联合绑定的UI。最好的方法是什么。我正在考虑使用LINQ Union方法与比较器生成另一个属性ObservableCollection<IStudent> FromBoth;
。我的问题是
有三个集合绑定在UI上很好吗?注意:我需要删除重复项,优先考虑来自excel的数据。
我需要在某些情况下从数据库中选择一些数据而不是excel。
例如:fromExcel中的name =“hungrymind”和fromDB集合中的name =“hungrymind concepts”。默认情况下,UI上的网格应该显示hungrymind(优先级为excel),但是如果用户从UI中取消选中列(aka属性),则该列的数据优先级变为DB,即UI应该显示“饥饿概念”
应该采取什么方法来实现这一点。我的方法是在用户事件上,从集合中的每个项目中选择来自FromDB或FromExcel的数据,并将其分配给FromBoth集合中的属性。由于有超过100列,我不得不使用反射,但不会减慢性能?如果我避免反思,那么我必须为每一列写一个方法。任何关于模式或方法的建议?