wpf-devexpress-dot-xpf-dot-core-dot-themedwindow-60c19be9.md
Gets or sets the object that chooses the current ThemedWindow‘s toolbar item template based on custom logic. This is a dependency property.
Namespace : DevExpress.Xpf.Core
Assembly : DevExpress.Xpf.Core.v25.2.dll
NuGet Package : DevExpress.Wpf.Core
public DataTemplateSelector ToolbarItemTemplateSelector { get; set; }
Public Property ToolbarItemTemplateSelector As DataTemplateSelector
| Type | Description |
|---|---|
| DataTemplateSelector |
A DataTemplateSelector object that chooses the current ThemedWindow‘s toolbar item template based on custom logic.
|
A selector assigned to the ToolbarItemTemplateSelector property chooses a template and applies it to toolbar items (see the ThemedWindow.ToolbarItems property) of this ThemedWindow. To explicitly select a required template, assign it to the ThemedWindow.ToolbarItemTemplate property. Refer to the Choosing Templates Based on Custom Logic topic for more information.
Note
The ToolbarItemTemplate property applies to all objects except UIElements objects.
The following code sample shows how to add ThemedWindow Toolbar Items and use the ToolbarItemTemplateSelector property:
<dx:ThemedWindow
...
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core">
<dx:ThemedWindow.Resources>
<DataTemplate x:Key="BlueBorderTemplate" >
<Border Margin="1" Background="Blue">
<TextBlock Margin="5" Foreground="Yellow" Text="{Binding}" />
</Border>
</DataTemplate>
<DataTemplate x:Key="OrangeBorderTemplate">
<Border Margin="1" Background="Orange">
<TextBlock Margin="5" Foreground="Green" Text="{Binding}" />
</Border>
</DataTemplate>
</dx:ThemedWindow.Resources>
<dx:ThemedWindow.ToolbarItemTemplateSelector>
<local:SampleTemplateSelector/>
</dx:ThemedWindow.ToolbarItemTemplateSelector>
<dx:ThemedWindow.ToolbarItemsSource>
<dx:ThemedWindowHeaderItemsCollection>
code_1
code_2
code_3
<Button Content="SimpleButton"/>
</dx:ThemedWindowHeaderItemsCollection>
</dx:ThemedWindow.ToolbarItemsSource>
</dx:ThemedWindow>
public class SampleTemplateSelector : DataTemplateSelector {
public DataTemplate BlueBorderTemplate { get; set; }
public DataTemplate OrangeBorderTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container) {
if(item.ToString() == "code_1") {
return (container as FrameworkElement).TryFindResource("BlueBorderTemplate") as DataTemplate;
}
if(item.ToString() == "code_2") {
return (container as FrameworkElement).TryFindResource("OrangeBorderTemplate") as DataTemplate;
}
return base.SelectTemplate(item, container);
}
}
Public Class SampleTemplateSelector
Inherits DataTemplateSelector
Public Property BlueBorderTemplate As DataTemplate
Public Property OrangeBorderTemplate As DataTemplate
Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
If item.ToString() = "code_1" Then
Return TryCast((TryCast(container, FrameworkElement)).TryFindResource("BlueBorderTemplate"), DataTemplate)
End If
If item.ToString() = "code_2" Then
Return TryCast((TryCast(container, FrameworkElement)).TryFindResource("OrangeBorderTemplate"), DataTemplate)
End If
Return MyBase.SelectTemplate(item, container)
End Function
End Class
Note
In this code snippet, the ToolbarItemTemplate property applies to all objects except the Button control.
The image below illustrates the result:
See Also