我正在尝试为动态菜单绑定一个功能区控件。
问题在于我无法让按钮显示在组下面。如果没有像第二个ribbontab中那样的grouptemplate,我可以让它工作。但是,如果我也尝试动态执行该组,则无法创建按钮。此外,通过在其中包含ribbongroup的datatemplate,标题被截断。我已经了解了这一点,并且这就是尝试使用HierarchicalDatatemplate的原因。常规数据模板不允许itemsource或itemtemplate。
那么,我如何使动态RibbonGroup显示动态RibbonButtons呢?
我现在已经实施了一些其他更改,并且至少填充了它,但它并不正确。
现在它看起来像这样: 我希望它看起来像这样,这部分是硬编码的。 这是xaml:
<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>
这是我第一次尝试使用群组数据模板:
<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>
问题在于我无法让按钮显示在组下面。如果没有像第二个ribbontab中那样的grouptemplate,我可以让它工作。但是,如果我也尝试动态执行该组,则无法创建按钮。此外,通过在其中包含ribbongroup的datatemplate,标题被截断。我已经了解了这一点,并且这就是尝试使用HierarchicalDatatemplate的原因。常规数据模板不允许itemsource或itemtemplate。
那么,我如何使动态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更改为分层数据模板。