Zusammenfassung:
Die Bindung scheint beim Hinzufügen und Entfernen nicht mehr synchron zu sein Registerkarten aus der Registerkarte TabView.
Minimales Arbeitsbeispiel, das das Problem demonstriert:
Code für minimales Arbeitsbeispiel, das das Problem demonstriert Ausgabe hier:
https://github.com/elbrandt/WinUI3_TabV ... ding_Issue
Beschreibung
In einem Desktop WinUI3 app, unter Verwendung von .NET8, habe ich eine TabView, deren TabItemsSource-Eigenschaft an eine ObservableCollection von TabViewModel-Instanzen in der ViewModel-Klasse der Seite gebunden ist.
Jedes Mal ein neuer Tab Wenn auf die Schaltfläche geklickt wird, wird eine ViewModel-Befehlsmethode ausgeführt, die eine TabViewModel-Klasse instanziiert und sie der ObservableCollection hinzufügt. Die TabViewModel-Klasse verfügt über eine einzelne Ganzzahleigenschaft, MyNumber, die mit einer eindeutigen, monoton ansteigenden Ganzzahl initialisiert wird.
Die MyNumber-Eigenschaft ist sowohl an die Header-Eigenschaft von TabViewItem als auch an einen TextBlock gebunden in einem benutzerdefinierten Steuerelement, das den Inhalt des TabViewItem
Verhaltens (Wiedergabe)
Der Header und und TextBlock darstellen sollte immer dabei sein synchronisieren, da sie an dasselbe Mitglied des Objekts gebunden sind, das der DataContext für das TabViewItem ist.
Wenn Sie jedoch 1. zwei Registerkarten hinzufügen, 2. die beiden schließen Tabs, 3. Fügen Sie einen weiteren Tab hinzu. Dann werden Sie sehen, dass die beiden UI-Elemente nicht mehr synchron sind.
Was ist los? Mache ich etwas falsch? Oder ist das ein Fehler im TabView-Code?
Vielen Dank im Voraus!
(Ich habe dies per Cross-Post auf https://learn.microsoft gepostet .com/en-us/answers/questions/edit/2145997 ebenfalls, in der Hoffnung, schnell irgendwo eine Antwort zu bekommen).
