如何获取或设置wpf功能区组合框的选定索引?

时间:2012-09-26 20:34:08

标签: wpf vb.net xaml ribbon

我一直在互联网上搜索(谷歌搜索)并且没有找到这个简单问题的答案,因此我开始认为这可能是不可能的。

好的,我的Ribbon中有一个RibbonCombobox。这是代码

<ribbon:RibbonComboBox  
                  SelectionBoxWidth="150"
                  VerticalAlignment="Center" 
                  IsEditable="False" Name="cbConsultationRapideEmploye">
                        <ribbon:RibbonGallery Name="cbConsultationRapideEmployeG" SelectedValuePath="Name"
                          MaxColumnCount="1">
                            <ribbon:RibbonGalleryCategory Name="cbConsultationRapideEmployeGC" Margin="0" Padding="0" ItemsSource="{Binding}" DisplayMemberPath="NomEmploye" />
                        </ribbon:RibbonGallery>
                    </ribbon:RibbonComboBox>

我在加载数据集中填充此组合框。

我想要做的是设置加载所选项目作为列表中的第一项。 我知道RibbonGallery上有一个SelectedItem属性,但有时它对索引的效果会更好。

我可能会将SelectedItem设置为我的数据集中的第一项,但是在获取信息的情况下,提取文本实际上不是一个选项,因为我需要员工的ID(来自数据库)而不是他的名字。

如果某人有替代解决方案,我会接受建议。

编辑: 根据请求,这里是组合框获取其值的代码。

bd.openConnection()
dsCbNomEmploye = bd.queryds("SELECT Prenom + ' ' + Nom AS NomEmploye FROM tblEmploye ORDER BY 1", "tblEmploye")
cbConsultationRapideEmploye.DataContext = dsCbNomEmploye.Tables(0).DefaultView

2 个答案:

答案 0 :(得分:1)

我最终在RibbonGallery标签上添加了SelectedValuePath,就像这样

<ribbon:RibbonComboBox  
                  SelectionBoxWidth="150"
                  VerticalAlignment="Center" 
                  IsEditable="False" Name="cbConsultationRapideEmploye">
                        <ribbon:RibbonGallery SelectedValuePath="idEmploye" Name="cbConsultationRapideEmployeG"
                          MaxColumnCount="1">
                            <ribbon:RibbonGalleryCategory Name="cbConsultationRapideEmployeGC" Margin="0" Padding="0" ItemsSource="{Binding}" DisplayMemberPath="NomEmploye" />
                        </ribbon:RibbonGallery>
                    </ribbon:RibbonComboBox>

之后如果您需要文本值,可以使用cbConsultationRapideEmployeG.SelectedItem获取它,如果您需要实际值,可以使用cbConsultationRapideEmployeG.SelectedValue

获取它

简而言之,SelectedItem =显示的值 SelectedValue =未显示值

答案 1 :(得分:0)

我在WPF Combobox(XAML)中做过这个并且工作过。可能它会给你一个想法

ItemsSoruce={Binding} SelectedIndex={Binding ElementName=yourcomboboxname, Path=SelectedItem} IsSynchronizedWithCurrentItem = True