Определение момента добавления элемента вкладки в элемент управления вкладками WPF - PullRequest
5 голосов
/ 04 сентября 2010

Я пытаюсь синхронизировать выбранный элемент вкладки элемента управления вкладки WPF с последним добавленным элементом.

Поскольку отсутствует такое свойство, как, например, IsSynchedWithLastAddedItem, я пытаюсь определить, когда элемент былдобавлено, чтобы указать SelectedItem на последний добавленный элемент.

Я не могу найти событие, которое возникает - ни на элементе управления вкладкой, ни на его элементах, когда был добавлен элемент TabItem.

IЯ уверен, что нечто подобное должно существовать, поэтому я надеюсь, что кто-то может мне помочь.

Ответы [ 2 ]

10 голосов
/ 04 сентября 2010
var view=CollectionViewSource.GetDefaultView(m_tabControl.ItemsSource);
view.CollectionChanged+=(o,e)=>{/*Here your code*/};

Если вы работаете напрямую с коллекцией предметов, будет работать та же техника. Получите по умолчанию CollectionViewSource для этой коллекции.

var view=CollectionViewSource.GetDefaultView(m_tabControl.Items);
view.CollectionChanged+=(o,e)=>{/*Here your code*/};

Как писал Тимор , для свойства m_tabControl.Items вы можете напрямую прикрепить обработчик. То же самое верно и для большинства ItemsSource-ссылок, но там вы должны проверить себя на наличие INotifyCollectionChanged-interface.

Я не проверял это. Оставьте комментарий, если он не работает.

0 голосов
/ 04 сентября 2010

Коллекция Items имеет тип ItemCollection, которая наследуется от CollectionView, который реализует INotifyCollectionChanged.Таким образом, вы можете прослушать CollectionChanged и узнать, когда добавляется элемент.

Не знаю, как это сделать в XAML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...