组合框中基类的DisplayMember属性

本文关键字:DisplayMember 属性 基类 组合 | 更新日期: 2023-09-27 18:29:34

我使用Windows窗体。我想要基类中DisplayMember的相等属性?我有类

public class MyViewModel
{
    public int Id { get; set; }
    public Type Type { get; set; }
}

我想要,我的comboBox显示Type.Name.

List<MyViewModel> list = new List<MyViewModel>();
list.Add(new MyViewModel(){ Id = 1, Type.GetType(int)});
list.Add(new MyViewModel(){ Id = 2, Type.GetType(string)});
//how i must to config displayMember???
myComboBox.DisplayMember = "Type.Name";
myComboBox.ValueMember = "Id";
myComboBox.DataSoutce = list;

但我无法获取要在comboBox中显示的Type.Name。你能帮我吗?

组合框中基类的DisplayMember属性

ComboBox有一个用于此目的的事件,称为Format:

myComboBox.DisplayMember = "Type";//Notice this
myComboBox.Format += (s,e) => {
    e.Value = ((Type)e.Value).Name;
};

您必须创建一个具有两个属性的新类:

class MyViewModel
{
    public string TypeName {get; set; }
    public string Id {get; set; }
}
// generate the datasource list.
List<MyViewModel> list = new List<MyViewModel>();
list.Add(new MyViewModel(){ Id = 1, TypeName = typeof(int).Name});
list.Add(new MyViewModel(){ Id = 2, TypeName = typeof(string).Name});
// how i must to config displayMember
myComboBox.DisplayMember = "TypeName";
myComboBox.ValueMember = "Id";
myComboBox.DataSoutce = list;