填充 RibbonComboBox

Populating RibbonComboBox

我正在学习 WPF,并且花了 waaaay 太多时间来尝试解决这个简单的任务。

我的目标是向功能区控件添加两个 RibbonComboBoxes。一个用于 类别 ,另一个用于 子类别 。每当用户更改 Category 时,我希望更新 Subcategories 组合框以显示当前类别的子类别。

XAML:

<RibbonTab Header="Home">
    <RibbonGroup Header="Category">
        <RibbonComboBox Label="Category:" HorizontalContentAlignment="Left" SelectionBoxWidth="250" Focusable="False">
            <RibbonGallery Name="galCategory" DisplayMemberPath="Text" SelectedValuePath="Value">
            </RibbonGallery>
        </RibbonComboBox>
        <RibbonComboBox Label="Subcategory:" HorizontalContentAlignment="Left" SelectionBoxWidth="250">
            <RibbonGallery Name="galSubcategory" DisplayMemberPath="Text" SelectedValuePath="Value">
            </RibbonGallery>
        </RibbonComboBox>
    </RibbonGroup>
</RibbonTab>

我发现只有添加 RibbonGallery 元素,我才能访问允许我填充组合框的方法。但是,虽然我的数据显示在列表中,但用户无法选择这些项目。 (单击列表中的项目没有任何效果。)

谁能告诉我如何填充这些控件?

注意:如果有人能告诉我如何使两个组合框彼此对齐,而不管标签中文本的长度如何,都会加分!

RibbonGallery 内添加一个 RibbonGalleryCategory 控件,然后填充它。添加选择更改事件侦听器 RibbonGallery:

XAML:

<RibbonComboBox Label="Category:" Name="rcmbCategory" SelectionBoxWidth="100" Height="20" HorizontalContentAlignment="Center">
    <RibbonGallery Name="galCategory" DisplayMemberPath="Text" SelectedValuePath="Value" SelectionChanged="RibbonGallery_SelectionChanged">
        <RibbonGalleryCategory Name="rgcCategory"/>
    </RibbonGallery>
</RibbonComboBox>

.CS:

public MainWindow()
{
    InitializeComponent();
    for(int i=0;i<=10;i++)
        rgcCategory.Items.Add(i);
}

private void RibbonGallery_SelectionChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    MessageBox.Show(rcmbCategory.SelectionBoxItem.ToString());
}

有关详细信息,请参阅 CodeProject: RibbonComboBox