用于组合框的复合DisplayMemberPath

dre*_*gan 3 c# combobox

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

Tho*_*que 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>
Run Code Online (Sandbox Code Playgroud)