Is this a bug in TabView implementation? Or what could I be doing wrong?
Summary:
Binding seems to get out of sync when adding and removing tabs from tab TabView.
Minimal Working Example that Demonstrates the Issue:
Code for minimal working example that demonstrates the issue here:
https://github.com/elbrandt/WinUI3_TabView_Binding_Issue
Description
In a desktop WinUI3 app, using .NET8, I have a TabView that has its TabItemsSource property bound to an ObservableCollection of TabViewModel instances in the page's ViewModel class.
Each time a new tab button is clicked, a ViewModel command method is executed, which instantiates a TabViewModel class and adds it to the ObservableCollection. The TabViewModel class has a single integer property, MyNumber that is initialized to a unique, monotonically increasing integer.
The MyNumber property is bound to both the TabViewItem's Header property, as well as to a TextBlock in a custom control that is the content of the TabViewItem
Behavior (Reproducing)
The Header and and TextBlock should always be in sync, since they are bound to the same member of the object that is the DataContext for the TabViewItem.
However, if you 1. Add two tabs, 2. Close the two tabs, 3. Add another tab, then you will see the two UI elements are no longer in sync.
What is going on? Am I doing something wrong? Or is this a bug in the TabView code?
Thanks in advance!
(I have cross posted this to https://learn.microsoft.com/en-us/answers/questions/edit/2145997 as well, in hopes of getting an answer somewhere, quickly).
