3
我需要创建一个DisplayMemberPath是几个属性的复合(即object.category.Name +“ - >”+ object.description)我很确定我可以通过创建一个动态数据类型封装对象,并且还添加了一个名为displayField的新属性,这是我所需要的,但我想知道是否有更合适的方法来执行此操作,而不涉及创建新对象。有任何想法吗?复合DisplayMemberPath为组合框
我需要创建一个DisplayMemberPath是几个属性的复合(即object.category.Name +“ - >”+ object.description)我很确定我可以通过创建一个动态数据类型封装对象,并且还添加了一个名为displayField的新属性,这是我所需要的,但我想知道是否有更合适的方法来执行此操作,而不涉及创建新对象。有任何想法吗?复合DisplayMemberPath为组合框
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>
谢谢!如何特别绑定到displaymemberpath。例如,如果我想要两个项目模板,一个用于selectedvaluepath,另一个用于dislaymemberpath? – dregan
@ user978744,您可以指定ItemTemplate而不是DisplayMemberPath,但不能对SelectedValuePath执行相同的操作,因为选定的值不是显示的内容,所以它没有任何意义。如果您需要复合值SelectedValue,请在您的ViewModel上创建一个新属性 –