Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Windows.Controls
Imports System.Windows
Namespace DockingDemo.MVVM
Public Class BarItemTemplateSelector
Inherits DataTemplateSelector
Private privateBarCheckItemTemplate As DataTemplate
Public Property BarCheckItemTemplate() As DataTemplate
Get
Return privateBarCheckItemTemplate
End Get
Set(ByVal value As DataTemplate)
privateBarCheckItemTemplate = value
End Set
End Property
Private privateBarItemTemplate As DataTemplate
Public Property BarItemTemplate() As DataTemplate
Get
Return privateBarItemTemplate
End Get
Set(ByVal value As DataTemplate)
privateBarItemTemplate = value
End Set
End Property
Private privateBarSubItemTemplate As DataTemplate
Public Property BarSubItemTemplate() As DataTemplate
Get
Return privateBarSubItemTemplate
End Get
Set(ByVal value As DataTemplate)
privateBarSubItemTemplate = value
End Set
End Property
Private privateBarItemSeparatorTemplate As DataTemplate
Public Property BarItemSeparatorTemplate() As DataTemplate
Get
Return privateBarItemSeparatorTemplate
End Get
Set(ByVal value As DataTemplate)
privateBarItemSeparatorTemplate = value
End Set
End Property
Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
Dim commandViewModel As CommandViewModel = TryCast(item, CommandViewModel)
If commandViewModel IsNot Nothing Then
Dim template As DataTemplate = Nothing
If commandViewModel.Owner IsNot Nothing Then
template = BarCheckItemTemplate
End If
If commandViewModel.IsSubItem Then
template = BarSubItemTemplate
End If
If commandViewModel.IsSeparator Then
template = BarItemSeparatorTemplate
End If
Return If(template Is Nothing, BarItemTemplate, template)
End If
Return MyBase.SelectTemplate(item, container)
End Function
End Class
Public Class BarTemplateSelector
Inherits DataTemplateSelector
Private privateMainMenuTemplate As DataTemplate
Public Property MainMenuTemplate() As DataTemplate
Get
Return privateMainMenuTemplate
End Get
Set(ByVal value As DataTemplate)
privateMainMenuTemplate = value
End Set
End Property
Private privateToolbarTemplate As DataTemplate
Public Property ToolbarTemplate() As DataTemplate
Get
Return privateToolbarTemplate
End Get
Set(ByVal value As DataTemplate)
privateToolbarTemplate = value
End Set
End Property
Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
Dim barModel As BarModel = TryCast(item, BarModel)
If barModel IsNot Nothing Then
Return If(barModel.IsMainMenu, MainMenuTemplate, ToolbarTemplate)
End If
Return MyBase.SelectTemplate(item, container)
End Function
End Class
End Namespace