组合框如何决定将为项目显示什么文本?

时间:2018-07-17 14:15:18

标签: c# .net wpf

全部在标题中。 ComboBox由类型为IEnumerable的{​​{1}}填充。 SomeType如何决定每个项目显示什么文本?

当然,我不是在问类型为ComboBox的情况。

1 个答案:

答案 0 :(得分:5)

如果您定义了ItemTemplate,则该变量将应用于IEnumerable返回的所有项目:

<ComboBox ItemsSource="{Binding Items}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="custom..." />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

如果没有,您将看到每个项目的ToString()表示形式。您可以通过覆盖数据类型的ToString()方法来确认这一点。

您还可以将DisplayMemberPath的{​​{1}}属性设置为您的数据类型的公共属性的名称。然后将显示该属性的值,而不是ComboBox的值。