用于组合框的复合DisplayMemberPath

时间:2011-10-04 15:37:14

标签: c# combobox

我需要创建一个DisplayMemberPath,它是一些属性的复合(即object.category.Name +“ - >”+ object.description)我很确定我可以通过创建一个动态数据类型来实现这一点封装了对象,还添加了一个名为displayField的新属性,这是我需要的,但我想知道是否有更合适的方法来执行此操作,而不涉及创建新对象。有什么想法吗?

1 个答案:

答案 0 :(得分:9)

当您不需要项目的复杂模板时,

DisplayMemberPath只是一个“快捷方式”。如果您需要更多控制权,请改用ItemTemplate

<ComboBox ItemsSource="{Binding Items}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <TextBlock.Text>
                    <MultiBinding StringFormat="{}{0} -> {1}">
                        <Binding Path="Category.Name" />
                        <Binding Path="Description" />
                    </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>