1

このようにComboBoxを埋めます

            using (MorEntities1 c = new MorEntities1())
        {
            var myViewSource = new CollectionViewSource { Source = c.People.ToList() };
            myViewSource.SortDescriptions.Add(
              new SortDescription("Family_Name", ListSortDirection.Ascending)
            );
            CB_Coehn.ItemsSource = myViewSource.View;
            CB_Coehn.DisplayMemberPath = "Family_Name";
            CB_Coehn.SelectedValuePath = "Person_Id";
            CB_Coehn.SelectedIndex = 0;
       } 

しかし、データベースには First Name フィールドと Last Name フィールドがあります。ComboBox (LastName , FirstName) で 2 つのフィールドを表示するにはどうすればよいですか?

これはWPFとc#にあります

助けてくれてありがとう

4

2 に答える 2

2

「People」クラスを制御できる場合は、「DisplayName」という新しいプロパティを作成して、必要に応じてフォーマットし、DisplayMemberPath をそのプロパティに設定できます。

public string DisplayName
{
    get { return string.format("{0}, {1}", LastName, FirstName); }
}

CB_Coehn.DisplayMemberPath = "DisplayName";

コード ビハインドではなく XAML でこれらすべてを実行できる場合は、次のように実行できます。

<ComboBox x:Name="CB_Coehn">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock>
                    <TextBlock.Text>
                        <MultiBinding StringFormat="{0}, {1}">
                            <Binding Path="LastName" />
                            <Binding Path="FirstName" />
                        </MultiBinding>
                    </TextBlock.Text>
                </TextBlock>
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>

注: 私はこのコードをテストしておらず、メモリのみを使用していますが、少なくとも非常に近いはずです。

于 2012-08-22T19:29:53.450 に答える
1

itemscontrol itemtemplate2 つのラベルを含むを作成し、それらのTextプロパティを item.firstName と item.lastName にバインドする必要があります。

例については、こちらを参照してください。

于 2012-08-22T19:26:54.387 に答える