Witam serdecznie
Tworzę aplikację, która ma za zadanie testować wydajność zapytań w różnych systemach bazodanowych. Utworzyłem sobie klasę abstrakcyjna Database, która stanowi klasę bazową dla klas potomnych, które reprezentują określone bazy danych. Jest to prosta aplikacja w Windows Forms C#. Mam tam gridy i obiekty treeView(nieco zmodyfikowane jako moje własne kontrolki). Problem leży w tym, że potrzebuje ładować dane do tych kontrolek. Dzięki abstrakcji nie muszę wykonywać wszystkich operacji dla każdej klasy - np. pobranie listy tabel i wsadzenia ich do obiektów treeView. Problemem jest w sytuacji kiedy mam te dane ładować jako źródło danych do konkretnego TreeView. W konsekwencji powstaje taki koszmarek jak poniżej. Pytanie jak to załatwić, żeby było ładnie i zgrabnie.
if (database.type == Database.DatabaseType.SQLServer)
this.treeViewWithTablesSqlServer.SetDataSource(database.TableList);
else if (database.type == Database.DatabaseType.MySQL)
this.treeViewWithTablesMySQL.SetDataSource(database.TableList);
else if (database.type == Database.DatabaseType.PostgreSQL)
this.treeViewWithPostgreSQL.SetDataSource(database.TableList);
else if (database.type == Database.DatabaseType.OracleDB)
this.treeViewWithOracleDB.SetDataSource(database.TableList);