Back to Devexpress

RibbonPage.GroupTemplate Property

wpf-devexpress-dot-xpf-dot-ribbon-dot-ribbonpage-6177fbbb.md

latest4.2 KB
Original Source

RibbonPage.GroupTemplate Property

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

Declaration

csharp
public DataTemplate GroupTemplate { get; set; }
vb
Public Property GroupTemplate As DataTemplate

Property Value

TypeDescription
DataTemplate

A DataTemplate object that specifies the corresponding template.

|

Remarks

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 :

xaml
<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>
csharp
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; }
}
vb
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

RibbonPage Class

RibbonPage Members

DevExpress.Xpf.Ribbon Namespace