Я пытаюсь привязать ленточный элемент управления к динамическим меню.
<ribbon:Ribbon>
<ribbon:RibbonTab Header="Reports"
ItemsSource="{Binding ReportMenus}"
ItemTemplate="{StaticResource RibbonGroupDataTemplate}">
</ribbon:RibbonTab>
<ribbon:RibbonTab Header="Test">
<ribbon:RibbonGroup Header="TestGROUP"
ItemsSource="{Binding ReportMenus}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}">
</ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>
Верхняя вкладка ленты - это моя «настоящая» риббонтаба. Дно начиналось как построенное вручную, с помощью которого я проверяю свои теории.
Вот шаблоны данных, которые я пытаюсь использовать:
<Style TargetType="{x:Type ribbon:RibbonButton}">
<Setter Property="Label"
Value="{Binding ReportDisplayName}" />
</Style>
<DataTemplate x:Key="RibbonButtonDataTemplate">
<ribbon:RibbonButton />
</DataTemplate>
Это моя первая попытка использовать шаблон Group DataTemplate:
<HierarchicalDataTemplate x:Key="RibbonGroupDataTemplate" DataType="{x:Type Ribbon:RibbonGroup}"
ItemsSource="{Binding Converter={StaticResource DebugConverter}}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}">
<TextBlock Text="{Binding Path=ReportDisplayName}" />
</HierarchicalDataTemplate>
Тогда я пробовал вот это:
<DataTemplate x:Key="RibbonGroupDataTemplate">
<ribbon:RibbonGroup ItemsSource="{Binding Converter={StaticResource DebugConverter}}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}" />
</DataTemplate>
Проблема в том, что я не могу заставить кнопки отображаться под группой. Если у меня нет шаблона группы, как у моего второго риббонтаба, я могу заставить его работать. Но если я попытаюсь создать группу динамически, кнопки не будут созданы. Кроме того, если сделать табличку с данными с ребристой группой внутри, заголовки будут обрезаны. Я уже читал об этом, и это было причиной попытки использовать HierarchicalDatatemplate. Стандартная табличка данных не позволяет использовать источник или шаблон элемента.
Итак, как мне получить динамическую группу RibbonGroup для отображения динамических кнопок RibbonButtons?
Я внес некоторые другие изменения сейчас и, по крайней мере, заполнил их, но это не правильно.
Сейчас это выглядит так:
Я хочу, чтобы это выглядело так, что частично жестко запрограммировано.
вот xaml
<DataTemplate x:Key="RibbonButtonDataTemplate">
<ribbon:RibbonButton />
</DataTemplate>
<HierarchicalDataTemplate x:Key="RibbonGroupDataTemplate"
DataType="{x:Type ribbon:RibbonGroup}"
ItemsSource="{Binding ReportsMenuCollection}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}">
<TextBlock Text="{Binding Path=ReportDisplayName}" />
</HierarchicalDataTemplate>
единственное, что мне осталось попробовать, - это изменить мой шаблон RibbonButtonDataTemplate на иерархический шаблон данных.