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上創建一個新屬性 –