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