2つの値をComboBox表示値にバインドしようとしていますが、その方法がわかりません。
この方法は機能しません:
cboRegion.DisplayMemberPath = "idregion" + "description";
誰かがC#でそれを行う方法を知っていますか?
残念ながら、これは では不可能DisplayMemberPath
です。次の選択肢があります。
DataTemplate を指定する
<ComboBox>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}: {1}">
<Binding Path="idregion"/>
<Binding Path="description"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
(StringFormat 属性の空の中かっこについて疑問がある場合は、バインディング構文の StringFormat セクションで {} の大かっこが意味するものは何ですか?を参照してください) 。
プロパティまたはフィールドをデータ ソースに追加します。その方法は、データ ソースによって異なります。
コンボ ボックスが DataTable にバインドされている場合は、DataColumn を追加し、その値をループに入力します。または、SQL を変更して、連結された値をSELECT
句に追加します。
コンボ ボックスが POCO またはエンティティ フレームワーク オブジェクトにバインドされている場合は、連結を返すプロパティを追加します。
を使用する必要がありますDataTemplate
:
<ComboBox Name="cboRegion">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding idregion}" />
<Run Text="{Binding description}" />
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
ビューを作成し、2 つのフィールドを連結し、itemssource プロパティで新しいビューを参照した後 (およびエンティティ フレームワーク モデルを更新した後)、c# の DisplayMemberPath プロパティで連結されたフィールド名を参照できます。