これが可能かどうかわかりません。私はそれが正しくMyClassの内のすべての項目が表示されるように、このようなコンボボックス...それは利用可能なオプションをアップロードの後ろにコードで1つのComboBox選択を2つの異なるデータにバインドできますか?
<ComboBox Name="testType"
Margin="0,5,0,0"
IsTextSearchEnabled="True"
DisplayMemberPath="Description"
SelectedValue="{Binding MyClass.Id, Mode=TwoWay}"
SelectedValuePath="Id"/>
...
DataTable testCatList = TestTypeBase.GetAll();
testType.ItemsSource = testCatList.DefaultView;
を作成しました。ユーザーが選択すると、MyClassのIdフィールドが意図したとおりに更新されます。すばらしいです。
ここに私の問題があります:私のtestCatListには、各行のIdとDescriptionの両方が含まれています。これらのフィールドを両方とも現在のMyClassインスタンスにバインドしたいと思います。だからここに私が試したものです。ここで
<ComboBox Name="testType"
Margin="0,5,0,0"
IsTextSearchEnabled="True"
DisplayMemberPath="Description">
<ComboBox.SelectedValue>
<MultiBinding Converter="{???}">
<Binding Path="MyClass.Id" Mode="TwoWay"/>
<Binding Path="MyClass.Description" Mode="TwoWay"/>
</MultiBinding>
</ComboBox.SelectedValue>
</ComboBox>
、私はMyClass.Idが選択されたIDと選択した内容に設定MyClass.Descriptionに設定したいのですが。ご覧のとおり、SelectedValuePathを削除しました。なぜなら、Idだけをもう必要としないからです。しかし、コンバータのために何を使うべきかはわかりません(上記の疑問符を参照してください)。
任意のアイデア、StackOverflowのオハイオ州の専門家?ありがとう。
私は片方向コンバータから始めるだけです。コードの背後にコンバーターを作成しましたか?もしあなたが持っているものを投稿してください。 – Paparazzi
いいえ、データは既に正しい形式(DataTable.Id> MyClass.IdおよびDataTable.Description> MyClass.Description)であるため、このためのコンバータは作成していません。コードを使わずに2つのフィールドをバインドする方法があると思いました。 – Jarvis
私が知っているコンバータなしで結合や分割を行う方法はありません。コンバーターの構文は、コンバーターを期待していることを示していませんか?クラスの場合は、コンビネーションであるPropertyを作成して単一の値のように見えるかもしれません。 – Paparazzi