Привязка TabView WinUI 3 не обновляется правильно – переработка экземпляров?C#

Место общения программистов C#
Ответить
Anonymous
 Привязка TabView WinUI 3 не обновляется правильно – переработка экземпляров?

Сообщение Anonymous »

Это ошибка в реализации TabView? Или что я могу делать неправильно?
Резюме:
Кажется, что привязка не синхронизируется при добавлении и удалении. вкладки из вкладки TabView.
Минимальный рабочий пример, демонстрирующий проблему:
Код минимального рабочего примера, демонстрирующего проблема здесь:
https://github.com/elbrandt/WinUI3_TabV ... ding_Issue
Описание
В настольном WinUI3 app, используя .NET8, у меня есть TabView, свойство TabItemsSource которого привязано к ObservableCollection экземпляров TabViewModel в ViewModel страницы. class.
Каждый раз, когда нажимается кнопка новой вкладки, выполняется метод команды ViewModel, который создает экземпляр класса TabViewModel и добавляет его в ObservableCollection. Класс TabViewModel имеет единственное целочисленное свойство MyNumber, которое инициализируется уникальным монотонно увеличивающимся целым числом.
Свойство MyNumber привязано как к свойству Header TabViewItem, так и к TextBlock. в пользовательском элементе управления, который является содержимым TabViewItem
Поведение (воспроизведение)
Заголовок и и TextBlock всегда должен быть синхронизирован, поскольку они привязаны к тому же элементу объекта, который является DataContext для TabViewItem.
Однако, если вы 1. добавите две вкладки, 2. Закройте две вкладки. 3. Добавьте еще одну вкладку. Вы увидите, что два элемента пользовательского интерфейса больше не синхронизированы.
Что происходит? Я делаю что-то не так? Или это ошибка в коде TabView?
Заранее спасибо!
(Я разместил это на https://learn.microsoft .com/en-us/answers/questions/edit/2145997, в надежде быстро получить ответ где-нибудь).
Изображение


Подробнее здесь: https://stackoverflow.com/questions/793 ... -instances
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»