Hallo miteinander,
ich probiere gerade eine ehemalige Access-Anwendung in Visual Studio in .Net neu zu programmieren.
Eigentlich hielt ich ja WPF für die neuere und Zukunftssichere Plattform und bin mit meinem Projekt auch schon ein ganzes Stück vorwärts gekommen, bis...
Ja bis ich die Performance eines ComboBox-Controlls in WPF in Aktion erlebte.
Wenn ich eine ComboBox in Windows.Forms mit einer Datenliste von ca. 7000 Datensätzen fülle, dann öffnet sich die DropDown-Liste fast verzögerungsfrei.
Das selbe in WPF ist eine knappe Katastrophe, beim ersten öffnen dauert es fast 2 Sekunden, bis die Liste angezeigt wird, bei weiteren "Öffnungen" wird es etwas schneller, aber auch nicht berühmt.
WPF kann natürlich viel mehr und viel schöner und viel (was weiß ich....), aber...
Ich bin drauf und dran, diese Verzögerung als KO-Kriterium für WPf zu verstehen, mit so einer Verzögerung kann ich das weder selbst verwenden, noch Kunden anbieten.
CBElement ist eine Klasse mit den zwei Propertys Name und Key.
Zunächst fülle ich eine ObservaleCollection oder ein List(Of CBElement) mit den Daten aus der Datenbank, was keine nennenswerten Verzögerungen bedeutet.
In WPF habe ich die ComboBox an eine ObservableCollection oder List(Of CBElement) gebunden und dabei keinen großen Unterschied feststellen können.
Das gleiche in WinForms mit List(Of CBElement)
Beides funktioniert, nur die Verzögerung bei WPF .... hatte ich schon gesagt, dass das ziemlich langsam ist?
Ist hier jemand, der der WPF noch eine Chance geben kann und mir erkläre will, wie ich auch bei WPF "den Turbo einlegen kann".
Evtl. indem die DropDownliste bereits angezeigt wird, während im Hintergrund noch Daten geladen werden.
Allerdings darf es nicht passieren, dass der Anwender nach "Xanthippe" sucht und die Meldung "Nicht enthalten" erhält, weil die ComboBox noch nicht alle Daten geladen hatte.
Vermutlich werden die Daten hier eher gerendert als geladen.
Liebe Grüße
Johannes
PS:
Gibt es für WPF so etwas wie ein "Classic Template", mit dem sämtliche WPF Controls das gleiche Verhalten und Design wie Windows.Forms zeigen.
ich probiere gerade eine ehemalige Access-Anwendung in Visual Studio in .Net neu zu programmieren.
Eigentlich hielt ich ja WPF für die neuere und Zukunftssichere Plattform und bin mit meinem Projekt auch schon ein ganzes Stück vorwärts gekommen, bis...
Ja bis ich die Performance eines ComboBox-Controlls in WPF in Aktion erlebte.
Wenn ich eine ComboBox in Windows.Forms mit einer Datenliste von ca. 7000 Datensätzen fülle, dann öffnet sich die DropDown-Liste fast verzögerungsfrei.
Das selbe in WPF ist eine knappe Katastrophe, beim ersten öffnen dauert es fast 2 Sekunden, bis die Liste angezeigt wird, bei weiteren "Öffnungen" wird es etwas schneller, aber auch nicht berühmt.
WPF kann natürlich viel mehr und viel schöner und viel (was weiß ich....), aber...
Ich bin drauf und dran, diese Verzögerung als KO-Kriterium für WPf zu verstehen, mit so einer Verzögerung kann ich das weder selbst verwenden, noch Kunden anbieten.
CBElement ist eine Klasse mit den zwei Propertys Name und Key.
Zunächst fülle ich eine ObservaleCollection oder ein List(Of CBElement) mit den Daten aus der Datenbank, was keine nennenswerten Verzögerungen bedeutet.
In WPF habe ich die ComboBox an eine ObservableCollection oder List(Of CBElement) gebunden und dabei keinen großen Unterschied feststellen können.
Das gleiche in WinForms mit List(Of CBElement)
Beides funktioniert, nur die Verzögerung bei WPF .... hatte ich schon gesagt, dass das ziemlich langsam ist?
Ist hier jemand, der der WPF noch eine Chance geben kann und mir erkläre will, wie ich auch bei WPF "den Turbo einlegen kann".
Evtl. indem die DropDownliste bereits angezeigt wird, während im Hintergrund noch Daten geladen werden.
Allerdings darf es nicht passieren, dass der Anwender nach "Xanthippe" sucht und die Meldung "Nicht enthalten" erhält, weil die ComboBox noch nicht alle Daten geladen hatte.
Vermutlich werden die Daten hier eher gerendert als geladen.
Liebe Grüße
Johannes
PS:
Gibt es für WPF so etwas wie ein "Classic Template", mit dem sämtliche WPF Controls das gleiche Verhalten und Design wie Windows.Forms zeigen.