我正在学习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
元素,我才能访问允许我填充组合框的方法。但是,当我的数据显示在列表中时,用户无法选择项目。 (单击列表中的项目无效。)
有谁能告诉我如何填充这些控件?
注意:任何能告诉我如何让两个组合框彼此对齐的人都可以获得奖励,无论标签中的文字长度如何!
答案 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。