WPF与Combobox绑定

时间:2014-03-31 00:03:31

标签: c# wpf data-binding combobox

我在WPF中有这样一个组合框:

combobox.ItemsSource = await clientelocal.ObtenerVariablesAsync();
combobox.DisplayMemberPath = "Nombre"; 

DisplayMemberPath我希望有两个字段,例如:

combobox.ItemsSource = await clientelocal.ObtenerVariablesAsync();
combobox.DisplayMemberPath = "ID + Nombre";

但不是怎么做,有什么想法吗?

2 个答案:

答案 0 :(得分:0)

设置集合就像您一样,但不要设置DisplayMemberPath。这是一个例子:

MyComboBox.ItemsSource = await clientelocal.ObtenerVariablesAsync();

然后在XAML中执行此操作:

<ComboBox Name="MyComboBox">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Id}"/>
                    <TextBlock Text="{Binding Nombre}"/>
                </StackPanel>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

关键是项目模板,你可以在那里做任何你喜欢的事情来改变项目的外观,给它们颜色,通过边距改变填充等......

答案 1 :(得分:0)

您需要定义自定义DisplayMemberPath以显示多个属性,而不是设置ItemTemplate

<ComboBox>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" >
                <TextBlock Text="{Binding ID}" Margin="0,0,10,0"/>
                <TextBlock Text="{Binding Nombre}"/>
            </StackPanel>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>