1

私はインターネット全体を見てきましたが(ほとんどグーグルで)、この単純な質問に対する答えが見つからなかったため、それは不可能かもしれないと考え始めています.

わかりましたので、リボンに 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
4

2 に答える 2

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=非表示値

于 2012-09-29T15:30:24.827 に答える
0

これをWPFCombobox(XAML)で実行し、作業しました。それはあなたにアイデアを与えるかもしれません

ItemsSoruce={Binding} SelectedIndex={Binding ElementName=yourcomboboxname, Path=SelectedItem} IsSynchronizedWithCurrentItem = True
于 2012-09-27T01:46:56.760 に答える