私はこのようなモデルを持っています
interface IStudent {
string Name;
List<Subjects> Marks;
int RollNumber;
}
class ViewModel {
ObservableCollection<IStudent> FromExcel;
ObservableCollection<IStudent> FromDB;
}
UIで両方のコレクションの結合をバインドする必要があります。最善の方法は何ですか。ObservableCollection<IStudent> FromBoth;
比較機能を備えたLINQUnionメソッドを使用して別のプロパティを生成することを考えていました。私の質問は
UIにバインドするコレクションが3つあるのは問題ありませんか?注:Excelからのデータを優先して、重複を削除する必要があります。
場合によっては、ExcelではなくDBからデータを選択する必要があります。
例:fromExcelではname = "hungrymind"、fromDBコレクションではname="hungrymindconcepts"。デフォルトでは、UIのグリッドはhungrymind(Excelの優先順位)を表示する必要がありますが、ユーザーがUIから列(別名プロパティ)のチェックを外すと、その列のデータの優先順位はDBになります。つまり、UIは「hungrymindの概念」を表示する必要があります。
これを達成するためのアプローチはどうあるべきか。私のアプローチは、ユーザーイベントで、コレクション内の各アイテムのFromDBまたはFromExcelからデータを選択し、それをFromBothコレクションのプロパティに割り当てます。100を超える列があるため、リフレクションを使用する必要がありましたが、パフォーマンスが低下しませんか?リフレクションを避ける場合は、列ごとにメソッドを作成する必要があります。パターンやアプローチに関する提案はありますか?