TabControl switch back to last selected Tab
-
Hallo zusammen,
ich habe ein ziemlich ärgerliches Problem. Ich habe ein TabControl dessen TabItems gebunden sind. Diese werden aus einer Datenbank geladen. Nun aktualisiert sich die Anwendung aber selbst und dementsprechend auch die Tabs.
Nehmen wir mal an, dass der Benutzer den 3. Tab ausgewählt hat. Plötzlich aktúalisiert sich die Anwendung und dann kommts...Nachdem alle Tabs wieder geladen wurden steht der Benutzer wieder auf dem ersten Tab. Ergo...Er muss wieder oben in der TabListe klicken um zu dem Tab zurück zu kommen auf dem er vorher stand. Ich habe daraufhin also den aktullen Tab immer in meinem ViewModel gespeichert um nach dem Aktualisieren wieder zum ausgwählten Tab zurück zu springen.private int _TestIndex; public int TestIndex { get { return _TestIndex; } set { _TestIndex = value; OnPropertyChanged("TestIndex"); } } private List<Test> _Tests; public List<Test> Tests { get { return _Tests; } set { int temp = _TestIndex; _Test = value; OnPropertyChanged("Tests"); Thread.Sleep(250); TestIndex = temp; Thread.Sleep(250); TestsIndex = temp; } }
Problem ist, dass sich das COntrol nicht schnell genug lädt. Also haben wir eine künstliche Verzögerung eingebaut. Damit funktioniert es auch aber mehr als dreckig. Denn je weiter sich die Anwendung von der Datenbank entfernt, sprich die Ladezeiten länger werden, desto unwahrscheinlicher ist es, dass das mit der Verzögerung funktioniert. Weiß jemand eine Lösung?
-
Wie aktualisiert sich denn die Anwendung ? Das muss doch irgendeine Methode oder ein Event sein. Und dort kannst du den Aktualisierungscode dann reintun.
Oder verstehe ich da was falsch ?
-
Hi,
die Anwendung wird über Datenbank Events(Firebird) aktualisiert. Der Code in dem Setter stand auch vorher in der Methode die die eigentliche Aktualisierung durchführt aber da gibt es genau das selbe Problem. Deswegen habe ich die Logik einfach in den Setter verschoben. Aber naja...Das Problem hat sich dadurch nur verlagert.
-
Also ich muss zugeben dass ich mich mit Datenbankanbindung nicht wirklich auskenne, aber gibts da kein Event dass aufgerufen wird wenn das TabControl aktualisiert wurde ?
Weil dann müsstest du ja nur in diesem Event den index neusetzen.
Der Code der das TabControl füllt stammt ja nicht von dir oder ?