Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]Controls and Libraries
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.Charts.Designer
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.UI.Interactivity
  [Expand]DevExpress.Mvvm.UI.ModuleInjection
  [Expand]DevExpress.Xpf.Accordion
  [Expand]DevExpress.Xpf.Bars
  [Expand]DevExpress.Xpf.Carousel
  [Expand]DevExpress.Xpf.Charts
  [Expand]DevExpress.Xpf.Charts.Localization
  [Expand]DevExpress.Xpf.Charts.RangeControlClient
  [Expand]DevExpress.Xpf.ChunkList
  [Expand]DevExpress.Xpf.Controls
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Core.ConditionalFormatting
  [Expand]DevExpress.Xpf.Core.DataSources
  [Expand]DevExpress.Xpf.Core.ServerMode
  [Expand]DevExpress.Xpf.Data
  [Expand]DevExpress.Xpf.DataAccess
  [Expand]DevExpress.Xpf.DataAccess.DataSourceWizard
  [Expand]DevExpress.Xpf.Diagram
  [Collapse]DevExpress.Xpf.Docking
   [Expand]AutoHideGroup Class
   [Expand]AutoHideGroupCollection Class
    AutoHideType Enumeration
   [Expand]BaseLayoutItem Class
   [Expand]BaseLayoutItemCollection Class
    CaptionAlignMode Enumeration
    CaptionLocation Enumeration
   [Expand]ClosedPanelCollection Class
    ClosePageButtonShowMode Enumeration
    ClosingBehavior Enumeration
   [Expand]ContentItem Class
   [Expand]DockController Class
   [Expand]DockControllerBase Class
   [Expand]DockingDocumentUIService Class
    DockingStyle Enumeration
   [Collapse]DockLayoutManager Class
     DockLayoutManager Members
     DockLayoutManager Constructor
    [Collapse]DockLayoutManager Properties
      ActiveDockItem Property
      ActiveLayoutItem Property
      ActiveMDIItem Property
      AllowAeroSnap Property
      AllowCustomization Property
      AllowDockItemRename Property
      AllowDocumentSelector Property
      AllowFloatGroupTransparency Property
      AllowLayoutItemRename Property
      AllowMergingAutoHidePanels Property
      AutoHideExpandMode Property
      AutoHideGroups Property
      AutoHideMode Property
      ClosedPanels Property
      ClosedPanelsBarPosition Property
      ClosedPanelsBarVisibility Property
      CloseFloatWindowsOnManagerUnloading Property
      ClosingBehavior Property
      ContextMenuCustomizations Property
      DecomposedItems Property
      DefaultAutoHidePanelCaptionImage Property
      DefaultTabPageCaptionImage Property
      DestroyLastDocumentGroup Property
      DisposeOnWindowClosing Property
      DockController Property
      DockingStyle Property
      DockLayoutManager Attached Property
      EnableWin32Compatibility Property
      FloatGroups Property
      FloatingDocumentContainer Property
      FloatingMode Property
      HiddenItems Property
      IsCustomization Property
      IsCustomizationFormVisible Property
      IsRenaming Property
      IsSynchronizedWithCurrentItem Property
      Items Property
      ItemSelectorMenuCustomizations Property
      ItemsSource Property
      ItemTemplate Property
      ItemTemplateSelector Property
      LayoutControlItemContextMenuCustomizations Property
      LayoutControlItemCustomizationMenuCustomizations Property
      LayoutController Property
      LayoutItem Attached Property
      LayoutRoot Property
      ManualClosedPanelsBarVisibility Property
      MDIController Property
      MDIMergeStyle Property
      MinimizedItems Property
      OwnsFloatWindows Property
      RedrawContentWhenResizing Property
      ShowFloatWindowsInTaskbar Property
      ShowInvisibleItems Property
      ShowInvisibleItemsInCustomizationForm Property
      ShowMaximizedDocumentCaptionInWindowTitle Property
      UIScope Attached Property
      WindowTitleFormat Property
    [Expand]DockLayoutManager Events
    [Expand]DockLayoutManager Methods
    DockOperation Enumeration
   [Expand]DocumentGroup Class
   [Expand]DocumentPanel Class
   [Expand]EmptySpaceItem Class
   [Expand]FixedItem Class
    FixedItemStyle Enumeration
   [Expand]FloatGroup Class
   [Expand]FloatGroupCollection Class
    FloatingMode Enumeration
    GroupBorderStyle Enumeration
    ImageLocation Enumeration
   [Expand]LabelItem Class
   [Expand]LayoutControlItem Class
   [Expand]LayoutController Class
   [Expand]LayoutGroup Class
   [Expand]LayoutPanel Class
   [Expand]LayoutSplitter Class
    MDIState Enumeration
    MDIStyle Enumeration
   [Expand]RestoreLayoutOptions Class
   [Expand]SeparatorItem Class
   [Expand]TabbedDocumentUIService Class
   [Expand]TabbedGroup Class
  [Expand]DevExpress.Xpf.Docking.Base
  [Expand]DevExpress.Xpf.DocumentViewer
  [Expand]DevExpress.Xpf.Editors
  [Expand]DevExpress.Xpf.Editors.DateNavigator
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor
  [Expand]DevExpress.Xpf.Editors.Filtering
  [Expand]DevExpress.Xpf.Editors.Flyout
  [Expand]DevExpress.Xpf.Editors.Flyout.Native
  [Expand]DevExpress.Xpf.Editors.Helpers
  [Expand]DevExpress.Xpf.Editors.Popups
  [Expand]DevExpress.Xpf.Editors.RangeControl
  [Expand]DevExpress.Xpf.Editors.Settings
  [Expand]DevExpress.Xpf.Editors.Validation
  [Expand]DevExpress.Xpf.Gauges
  [Expand]DevExpress.Xpf.Gauges.Localization
  [Expand]DevExpress.Xpf.Grid
  [Expand]DevExpress.Xpf.Grid.ConditionalFormatting
  [Expand]DevExpress.Xpf.Grid.LookUp
  [Expand]DevExpress.Xpf.Grid.TreeList
  [Expand]DevExpress.Xpf.Layout.Core
  [Expand]DevExpress.Xpf.LayoutControl
  [Expand]DevExpress.Xpf.Map
  [Expand]DevExpress.Xpf.NavBar
  [Expand]DevExpress.Xpf.Navigation
  [Expand]DevExpress.Xpf.PdfViewer
  [Expand]DevExpress.Xpf.PivotGrid
  [Expand]DevExpress.Xpf.PivotGrid.Printing
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpf.Printing.Parameters
  [Expand]DevExpress.Xpf.Printing.Parameters.Models
  [Expand]DevExpress.Xpf.Printing.PreviewControl.Bars
  [Expand]DevExpress.Xpf.Prism
  [Expand]DevExpress.Xpf.PropertyGrid
  [Expand]DevExpress.Xpf.Reports.UserDesigner
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Extensions
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Localization
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard.Pages
  [Expand]DevExpress.Xpf.Ribbon
  [Expand]DevExpress.Xpf.RichEdit
  [Expand]DevExpress.Xpf.Scheduler
  [Expand]DevExpress.Xpf.Scheduler.Drawing
  [Expand]DevExpress.Xpf.Scheduler.Menu
  [Expand]DevExpress.Xpf.Scheduler.Reporting
  [Expand]DevExpress.Xpf.Scheduler.UI
  [Expand]DevExpress.Xpf.SpellChecker
  [Expand]DevExpress.Xpf.Spreadsheet
  [Expand]DevExpress.Xpf.Spreadsheet.Menu
  [Expand]DevExpress.Xpf.TreeMap
  [Expand]DevExpress.Xpf.Utils.Themes
  [Expand]DevExpress.Xpf.WindowsUI
  [Expand]DevExpress.Xpf.WindowsUI.Navigation
  [Expand]DevExpress.XtraRichEdit
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

DockLayoutManager.ItemTemplateSelector Property

Gets or sets a DataTemplateSelector object that provides a way to choose a DataTemplate to render items stored in the ItemsSource collection.

Namespace:DevExpress.Xpf.Docking
Assembly:DevExpress.Xpf.Docking.v17.1.dll

Expanded Syntax

Property value

Type: DataTemplateSelector
A DataTemplateSelector object that provides a way to choose a DataTemplate to render items stored in the ItemsSource collection.

Expanded Remarks

A DataTemplate allows you to specify the visualization for DockLayoutManager items stored in the ItemsSource collection. Using a DataTemplateSelector you can apply your own logic to choose a DataTemplate. To implement this functionality, define a class derived from a DataTemplateSelector, override the SelectTemplate method and assign an instance of this class to the ItemTemplateSelector property.

If no DataTemplateSelector object is assigned to the ItemTemplateSelector property, a DataTemplate assigned to the ItemTemplate property will be used. If the DataTemplateSelector returns null no DataTemplate will be used.

To learn more, see Choosing Templates Based on Custom Logic.

Expanded Example

Show Me

A complete sample project is available in the DevExpress Code Examples database at http://www.devexpress.com/example=E4867.

The following example shows how to create layout items (LayoutPanel and DocumentPanel objects) from a data source according to the MVVM design pattern and how to implement template selection.

In this example, the MainViewModel class provides the Items collection that contains objects to be rendered as layout items in the DockLayoutManager. An instance of the MainViewModel class is assigned to the Window's DataContext. The ItemsSource property is bound to the Items property in the MainViewModel. This way, the DockLayoutManager gets the source of objects to be visualized as layout items.

The Items collection contains items of two types:
  • ViewModel objects - contain data for creating LayoutPanels
  • DocumentViewModel objects - contain data for creating DocumentPanels

There are two templates declared in XAML that render input objects as either LayoutPanels or DocumentPanels.

The custom DockItemTemplateSelector class overrides the SelectTemplate method to choose a template that corresponds to a specific item in the ItemsSource. This template selector is assigned in XAML to the ItemTemplateSelector property.

In this example, the DockLayoutManager contains two groups explicitly created in XAML: a LayoutGroup named panelHost and a DocumentGroup named documentHost. Items from the Items collection are automatically placed in one of these groups based on their IMVVMDockingProperties.TargetName property values.

Expanded See Also

How would you rate this topic?​​​​​​​