我有一个实现ListCollectionView的用户控件,当我单独运行它时它工作正常,但是当我把它放在另一个用户控件中时,它是动态创建选项卡的动态 tabControl,真正的问题是当我创建第二个选项卡时,分组发生 2 次,如果我创建第三个选项卡,然后分组发生 3 次,依此类推。我参考了链接http://www.codeproject.com/Articles/493538/Add-Remove-Tabs-Dynamically-in-WPF 来创建动态选项卡,然后
Public obj As ThumbnailImages
Private Function AddTabItem() As TabItem
Dim count As Integer = _tabItems.Count
' create new tab item
Dim tab As New TabItem()
tab.Header = String.Format("tab{0}", count)
tab.Name = String.Format("tab{0}", count)
tab.HeaderTemplate = TryCast(tabDynamic.FindResource("TabHeader"), DataTemplate)
obj = New ThumbnailImages
' add controls to tab item,
tab.Content = obj
obj.SetDataContext(ImageCollection)
_tabItems.Insert(count - 1, tab)
Return tab
End Function
下面的代码在我的缩略图用户控件中
Public Sub GroupAndSortImages()
myCollectionView = Nothing
myCollectionView = CType(CollectionViewSource.GetDefaultView(Me.DataContext), ListCollectionView)
myCollectionView.GroupDescriptions.Add(New PropertyGroupDescription("Name"))
myCollectionView.SortDescriptions.Add(New SortDescription("Name[0]", ListSortDirection.Ascending))
MyList.ItemsSource = myCollectionView
End Sub
Public Sub SetDataContext(ByVal datacontext As Object)
Me.DataContext = datacontext
GroupAndSortImages()
End Sub
在上面的代码中,当第一次工作正常时单击新选项卡时,我将为我的缩略图 usercoontrol 创建新对象,如下所示
当我单击第二个选项卡时,它分组两次,如下所示,此外,第二个分组也发生在第一个选项卡中,即使我使用过
obj = New ThumbnailImages
在AddtabItem方法中
我调试了很长时间,但无法找出原因。提前致谢。