1

ComboBoxは にバインドされているを持っていEnumerableRowCollection<T>ます:

ComboFamilyStatus.ItemsSource = EnumerableRowCollection<TaxDataSet.SourcesOfValuesRow> coll;

私のxamlは次のようになります:

<ComboBox Name="ComboFamilyStatus" DisplayMemberPath="Description" 
          Text="{Binding FamilyStatus, Converter={StaticResource FamilyStatusStringConverter}}">

DisplayMemberPath行の説明を表示するためにを使用しています。SourcesOfValuesRow には値と説明があり、コンボで説明テキストを表示したいと考えています。Text は、FamilyStatus が int 値として保存されるデータベースにバインドされます。これが、コンバーターを追加した理由です。

私の質問は、コンバーターがコンボボックスの itemsource を使用して int 値から文字列に変換できるかどうかです。コンバーターがコンボについて何も認識していないようです。その間EnumerableRowCollection<TaxDataSet.SourcesOfValuesRow>、データベースから を再度取得し、一致する説明を見つけるコンバーターを作成しました。これは、これを行う最も簡単な方法ではありません。助言がありますか??

4

2 に答える 2

0

コンバーターを使用する必要はありません。これを使用して私のために働いた:

<ComboBox Name="FamilyStatus" Grid.Row="7" Grid.Column="1" ItemsSource="{Binding Source={StaticResource comboProvider}}"
            SelectedValuePath="Value" DisplayMemberPath="Description" SelectedValue="{Binding FamilyStatus}">

どこDisplayMemberPathに からの文字列がありTaxDataSet.SourcesOfValuesRowSelectedValuePathは int 値です。はSelectedValue、連絡先テーブルからの値です (コンボに書き込むのではなくText="{Binding FamilyStatus, Converter={StaticResource FamilyStatusStringConverter}})。

于 2013-04-07T19:21:26.497 に答える