将列表中的项目添加到组合框中
我想要列表中的项目出现在组合框中。我在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各项目出现在组合框。我已经得到了来自各种帖子的以下代码,但其他的看起来有些模糊,或者我无法找到他们使用的组合框的属性。
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);
在那里我创建并添加富对luFoo
它看起来像你几乎没有代码。我想在这一点上,ComboBox中唯一的东西是奇怪的字符串,它们实际上是Foo
类的完整名称空间。
你有什么未来的设置将显示在ComboBox用户物业办:
cmbFoo.ItemsSource = luFoo;
cmbFoo.DisplayMemberPath = "s";
请注意,如果你使用的MVVM pattern,你会做这样的事情在你的XAML以达到类似的结果,但如果你是比较新的,你可能还没有学到这一点。
<ComboBox ItemsSource="{Binding Path=luFoo}" DisplayMemberPath="s" />
除此之外,documentation始终是用于了解可用于控制不同的方法,事件和属性的重要资源。
As Flat Eric注意到,您也必须修改您的课程。在将s
转换为属性,将项目添加到列表并设置DisplayMemberPath
之后,您应该会看到ComboBox中列出的各种s
值。
public class Foo
{
public String s { get; set; }
public Foo(String _s)
{
s = _s;
}
}
我添加了displayMemberPath,但它仍然没有做任何事情 – 2014-12-06 14:58:14
请注意's'是一个'Field',绑定只能用于'Properties' – 2014-12-06 14:59:52
@FlatEric D'oh。谢谢,更新我的回答。 – 2014-12-06 15:03:59
使用此代码时,您目前在'ComboBox'中看到了什么? – 2014-12-06 14:41:39
因为我目前只有itemsource它显示绝对没有x“D – 2014-12-06 14:54:34
哦,可能是因为你的列表目前是空的,可能想添加一些项目到它,哈哈 – 2014-12-06 14:55:50