将列表中的项目添加到组合框
本文关键字:组合 添加 项目 列表 | 更新日期: 2023-09-27 18:33:17
我希望列表中的很多项目出现在组合框中。我对 c# 相对较新,因此不确定我可以在"东西"上执行的所有功能。例如,我有一个简单的类:
puclic Class Foo
{
public String s;
public Foo(String _s)
{s = _s;}
}
然后我有一个组合框和一个 Foo 的列表:
List<Foo> luFoo = new List<Foo>();
//add a bunch of Foo's to luFoo
然后我希望luFoo中的各种项目出现在comboBox中。我已经从各种帖子中获得了以下代码,但其余部分似乎有点模糊,或者我找不到他们使用的 comboBox 的属性。
cmbFoo.ItemsSource = luFoo;
任何帮助将不胜感激,谢谢。
编辑:
Foo a = new Foo("a");
Foo b = new Foo("b");
Foo c = new Foo("c");
Foo d = new Foo("d");
Foo e = new Foo("e");
luFoo.Add(a);
luFoo.Add(b);
luFoo.Add(c);
luFoo.Add(d);
luFoo.Add(e);
我创建 Foo 并将其添加到 luFoo 的代码
看起来你快到了。我想在这一点上,ComboBox 中唯一的东西是看起来很奇怪的字符串,它们实际上是 Foo
类的完整命名空间。
接下来要做的是设置将在 ComboBox 中向用户显示的属性:
cmbFoo.ItemsSource = luFoo;
cmbFoo.DisplayMemberPath = "s";
请注意,如果使用 MVVM 模式,则会在 XAML 中执行类似操作以实现类似的结果,但如果相对较新,则可能尚未了解这一点。
<ComboBox ItemsSource="{Binding Path=luFoo}" DisplayMemberPath="s" />
除此之外,文档始终是了解控件可用的不同方法、事件和属性的重要资源。
正如Flat Eric所指出的,你也必须修改你的类。将s
转换为属性、将项添加到列表并设置DisplayMemberPath
后,应会看到 ComboBox 中列出了s
的各种值。
public class Foo
{
public String s { get; set; }
public Foo(String _s)
{
s = _s;
}
}