0

2 つのデータベース列から 1 つのコンボボックスのコンテンツを表示したいと考えています。「姓名」を表示したいのですが、方法がわかりません。MVVM パターンを使用して C# (.NET) で作業しています。「名前」と「姓」はテーブル「tblGuests」のフィールドです。

前もって感謝します、ウラジミール

4

3 に答える 3

3

表示するすべてのプロパティにバインドする ComboBox の ItemTemplate を作成できます。

<ComboBox ItemsSource="{Binding}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <StackPanel  Orientation="Horizontal">
                <TextBlock Text="{Binding Path=FirstName}" Padding="10,0,0,0"/>
                <TextBlock Text="{Binding Path=LastName}" Padding="10,0,0,0"/>
            </StackPanel>
        <DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

再利用できる UserControl を作成して、それを使用することもできます。

<PersonView>
    <StackPanel  Orientation="Horizontal">
        <TextBlock Text="{Binding Path=FirstName}" Padding="10,0,0,0"/>
        <TextBlock Text="{Binding Path=LastName}" Padding="10,0,0,0"/>
    </StackPanel>
</PersonView>

<ComboBox ItemsSource="{Binding}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <PersonView/>
        <DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
于 2013-06-03T07:15:00.647 に答える
1

Viewmodel に文字列リスト プロパティを保持し、

名前と姓の文字列を組み合わせて、データ読み込みメソッドでそのプロパティを入力します。

文字列プロパティをコンボ ボックスにバインドし、

<ComboBox Name="ComboBox1" ItemsSource="{Binding YourStringListProperty}"/>
于 2013-06-03T07:05:51.353 に答える
1

別のオプションは、このような MultiBinding を使用することです

<TextBlock Name="textBox2" DataContext="{StaticResource NameListData}">
  <TextBlock.Text>
    <MultiBinding Converter="{StaticResource myNameConverter}"
                  ConverterParameter="FormatLastFirst">
      <Binding Path="FirstName"/>
      <Binding Path="LastName"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

このコードはmsdnから直接取得されました。詳しくはそちらを参照

于 2013-06-03T07:09:55.543 に答える