Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/DockingDemo.Wpf/MVVM/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/DockingDemo.Wpf/MVVM/BarTemplateSelector.vb

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