wpf-devexpress-dot-xpf-dot-ribbon-dot-ribbonpage-6177fbbb.md
Gets or sets the template used to visualize objects stored as elements in the RibbonPage.GroupsSource collection. This is a dependency property.
Namespace : DevExpress.Xpf.Ribbon
Assembly : DevExpress.Xpf.Ribbon.v25.2.dll
NuGet Package : DevExpress.Wpf.Ribbon
public DataTemplate GroupTemplate { get; set; }
Public Property GroupTemplate As DataTemplate
| Type | Description |
|---|---|
| DataTemplate |
A DataTemplate object that specifies the corresponding template.
|
The DataTemplate must be defined as a ContentControl with a RibbonPageGroup object as the content.
The GroupTemplate property supports the MVVM design pattern. See MVVM Support to learn more.
The example below illustrates how to implement the GroupTemplate :
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<Window.Resources>
<DataTemplate x:Key="groupTemplate">
<ContentControl>
<dxr:RibbonPageGroup Caption="{Binding Name}" ItemLinksSource="{Binding Items}" ItemTemplate="{StaticResource itemTemplate}"/>
</ContentControl>
</DataTemplate>
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<Window.Resources>
<DataTemplate x:Key="groupTemplate">
<ContentControl>
<dxr:RibbonPageGroup Caption="{Binding Name}" ItemLinksSource="{Binding Items}" ItemTemplate="{StaticResource itemTemplate}"/>
</ContentControl>
</DataTemplate>
</Window.Resources>
public class ViewModel {
public ViewModel() {
//...
ObservableCollection<ItemBase> items = new ObservableCollection<ItemBase>();
items.Add(new ItemBase() { Name = "Item1" });
items.Add(new ItemBase() { Name = "Item2" });
ObservableCollection<Group> groups = new ObservableCollection<Group>();
groups.Add(new Group() { Name = "Group1", Items = items });
}
}
//...
public class Group : ItemBase {
public ObservableCollection<ItemBase> Items { get; set; }
}
public class ItemBase {
public string Name { get; set; }
}
Public Class ViewModel
Public Sub New()
Dim items As New ObservableCollection(Of ItemBase)()
items.Add(New ItemBase() With {.Name = "Item1"})
items.Add(New ItemBase() With {.Name = "Item2"})
Dim groups As New ObservableCollection(Of Group)()
groups.Add(New Group() With {.Name = "Group1", .Items = items})
End Sub
End Class
Public Class Group
Inherits ItemBase
Private privateItems As ObservableCollection(Of ItemBase)
Public Property Items() As ObservableCollection(Of ItemBase)
Get
Return privateItems
End Get
Set(ByVal value As ObservableCollection(Of ItemBase))
privateItems = value
End Set
End Property
End Class
Public Class ItemBase
Private privateName As String
Public Property Name() As String
Get
Return privateName
End Get
Set(ByVal value As String)
privateName = value
End Set
End Property
End Class
View Example: Generate Pages, Groups, and Items from a ViewModel Collection
See Also