2012-09-26 32 views
1

我一直在尋找所有在互聯網上(使用Google相當多),並沒有發現任何回答這個簡單的問題,因此我開始認爲這可能是不可能的。如何獲取或設置wpf色帶組合框的選定索引?

行,所以我有一個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

我多一點的代碼會很好(例如,視圖模型/在ribboncombobox從獲取數據)的一部分;) –

+0

我加入了相關的代碼:) – Rayfloyd

+0

我不知道如果我理解正確的,但是你要選擇你的組合框的第一個項目就得到了它的數據之後(在裝載事件中)?你爲什麼不這樣做:cbConsultationRapideEmploye.SelectedIndex = 0;? –

回答

1

我最終加入SelectedValuePath上RibbonGallery標籤,像這樣

<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 =未顯示值

0

我這樣做的WPF組合框(XAML)和工作。可能是它會給你一個想法

ItemsSoruce={Binding} SelectedIndex={Binding ElementName=yourcomboboxname, Path=SelectedItem} IsSynchronizedWithCurrentItem = True 
相關問題