C# 在组合框中显示每个对象的特定变量

C# 在组合框中显示每个对象的特定变量,c#,wpf,combobox,C#,Wpf,Combobox,快速提问 我有一个此类对象的列表: public class Whatever { public string Name { get; set; } public List<blaBla> m_blaBla { get; set; } // .. } 公共类 { 公共字符串名称{get;set;} 公共列表m_blaBla{get;set;} // .. } 我想把列表链接到一个ComboxBox,在那里用户可以看到每个对象的名称。我该怎么做呢?您可以像这

快速提问

我有一个此类对象的列表:

public class Whatever
{
    public string Name { get; set; }
    public List<blaBla> m_blaBla { get; set; }
    // ..
}
公共类
{
公共字符串名称{get;set;}
公共列表m_blaBla{get;set;}
// ..
}

我想把
列表
链接到一个ComboxBox,在那里用户可以看到每个
对象的
名称
。我该怎么做呢?

您可以像这样使用
ComboBox.ItemTemplate

C#:


您可以这样使用
ComboBox.ItemTemplate

C#:

创建视图模型:

public ObservableCollection<Whatever> WhCol
{
    get { return this.Name; }
    set { }
}
公共可观测收集WhCol
{
获取{返回this.Name;}
集合{}
}
然后是一个匹配的视图

<ComboBox DisplayMemberPath="Name" ItemsSource="{Binding WhCol}" />

如果您不想根据用户输入进行更改,则这更适合。(对于组合框来说有点罕见)。

创建视图模型:

public ObservableCollection<Whatever> WhCol
{
    get { return this.Name; }
    set { }
}
公共可观测收集WhCol
{
获取{返回this.Name;}
集合{}
}
然后是一个匹配的视图

<ComboBox DisplayMemberPath="Name" ItemsSource="{Binding WhCol}" />


如果您不想根据用户输入进行更改,则这更适合。(这对于组合框来说有点罕见)。

或者只需重写
ToString()
函数,它就可以为您完成以下任务:

public class Whatever
{
    public string Name { get; set; }
    public List<blaBla> m_blaBla { get; set; }
    // ..
    public override string ToString()
    {
       return Name;
    }
}
公共类
{
公共字符串名称{get;set;}
公共列表m_blaBla{get;set;}
// ..
公共重写字符串ToString()
{
返回名称;
}
}
然后:

List<Whatever> MyList = new List<Whatever>();
public MainWindow()
{
    InitializeComponent();
    MyComboBox.ItemsSource = MyList;
}
List MyList=new List();
公共主窗口()
{
初始化组件();
MyComboBox.ItemsSource=MyList;
}

或只需重写
ToString()
函数,即可完成以下工作:

public class Whatever
{
    public string Name { get; set; }
    public List<blaBla> m_blaBla { get; set; }
    // ..
    public override string ToString()
    {
       return Name;
    }
}
公共类
{
公共字符串名称{get;set;}
公共列表m_blaBla{get;set;}
// ..
公共重写字符串ToString()
{
返回名称;
}
}
然后:

List<Whatever> MyList = new List<Whatever>();
public MainWindow()
{
    InitializeComponent();
    MyComboBox.ItemsSource = MyList;
}
List MyList=new List();
公共主窗口()
{
初始化组件();
MyComboBox.ItemsSource=MyList;
}