TabControl - порядок связывания данных TabItem - PullRequest
0 голосов
/ 26 марта 2012

У меня есть база данных TabControl, и я хочу привязать индекс каждого TabItem к соответствующему свойству в моей модели представления.ItemsSource - это ObservableCollection, и я использую функциональность перетаскивания Беа Столлница *, чтобы обеспечить переупорядочение элементов управления вкладками.

Мне кажется, что его можно обрабатывать в шаблоне данных для заголовка элемента вкладки, но я не смог заставить его работать.

1 Ответ

1 голос
/ 26 марта 2012

Ваш TabControl.ItemsSource должен быть привязан к вашей коллекции, поэтому чтобы изменить порядок элементов табуляции, просто измените порядок расположения коллекции.

Я работал с кодом перетаскивания Bea, прежде чемсоздать TabControl, который позволял бы пользователям перетаскивать элементы вкладок, и я думаю, что большая часть того, что было нужно, находится в коде, который она предоставляет.При удалении он удаляет перетаскиваемый объект из родительской коллекции и вставляет его в новое место в целевой коллекции перетаскивания, которая в вашем случае является той же коллекцией.

Редактировать

Исходя из вашего комментария об обновлении ViewModel с помощью индекса вкладки, попробуйте использовать событие CollectionChanged.

void MyCollection_CollectionChanged(object sender, CollectionChangedEventArgs e)
{
    foreach (var item in MyCollection)
        item.TabIndex = MyCollection.IndexOf(item);
}
...