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;
}