我有一个数据库TabControl,并希望将每个TabItem的索引绑定到我的视图模型中的相应属性。 ItemsSource是一个ObservableCollection,我正在使用Bea Stollnitz's Drag/Drop functionality来提供制表符控件重新排序。
我的直觉是它应该可以在标签项标题的数据模板中处理,但我无法使其正常工作。
答案 0 :(得分:1)
您的TabControl.ItemsSource
应该绑定到您的收藏集,因此要重新排列标签项的顺序,只需重新安排收藏。
我之前使用过Bea的拖放代码来创建一个允许用户拖放标签项的TabControl,我想大部分需要的是她提供的代码。在删除时,它会从其父集合中删除拖动的对象,并将其插入到放置目标集合中的新位置,在您的情况下,它是相同的集合。
修改强>
根据您在评论下使用标签索引更新ViewModel
的评论,请尝试使用CollectionChanged
活动。
void MyCollection_CollectionChanged(object sender, CollectionChangedEventArgs e)
{
foreach (var item in MyCollection)
item.TabIndex = MyCollection.IndexOf(item);
}