WPF - 如何在组合框列表中查看属性名称

时间:2016-02-26 18:58:26

标签: c# wpf

我有一个绑定到名为Models的集合的组合框,但它显示的是ToString值而不是Name属性

<xctk:WatermarkComboBox x:Name="cb_Model" ItemsSource="{Binding Models}" DisplayMemberPath="Name" SelectedValue="{Binding SelectedModel}" Grid.Column="2" Grid.Row="2" Watermark="Vehicle Model"/>

    private ObservableCollection<tbl_Model> _models;
    public ObservableCollection<tbl_Model> Models
    {
        get { return _models; }
        private set {
            _models = value;
            NotifyPropertyChanged("Models");
        }
    }

tbl_Models属性: 型号 名称 制造商

Image for reference

组合框没有显示name属性。如何在不覆盖ToString()方法的情况下实现它?提前致谢

1 个答案:

答案 0 :(得分:2)

似乎这是WatermarkComboBox中的一个错误。只需显式指定DataTemplate,而不是设置DisplayMemberPath:

    <xtck:WatermarkComboBox x:Name="cb_Model" ItemsSource="{Binding Models}" SelectedValue="{Binding SelectedModel}"  Watermark="Vehicle Model">
        <xtck:WatermarkComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}" />
            </DataTemplate>
        </xtck:WatermarkComboBox.ItemTemplate>
    </xtck:WatermarkComboBox>