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