填充RibbonComboBox

时间:2016-07-17 18:57:15

标签: c# .net wpf xaml ribbon

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

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

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元素,我才能访问允许我填充组合框的方法。但是,当我的数据显示在列表中时,用户无法选择项目。 (单击列表中的项目无效。)

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

注意:任何能告诉我如何让两个组合框彼此对齐的人都可以获得奖励,无论标签中的文字长度如何!

1 个答案:

答案 0 :(得分:1)

RibbonGalleryCategory内添加RibbonGallery控件,然后填充它。将选择更改事件侦听器添加到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