我有一个带有2个C#元素字段的对象,我已将它们插入到一个arraylist中。我试图让它们显示在组合框上。
这就是我目前所拥有的
ArrayList mylist = new ArrayList();
mylist.Add(new myobject("name1", "value1"));
mylist.Add(new myobject("name2", "value2"))
mylist.Add(new myobject("name3", "value3"));
ComboBox1.ItemsSource = drinksArray;
以下代码只显示3个元素,即" ClassName.myobject"对于我的组合框。
我试图让它显示" name1"," name2"和" name3"。
我的对象有一个getName()方法,但我不知道如何将它实现到组合框中。
答案 0 :(得分:2)
您必须设置ComboBox.DisplayMemberPath
。
答案 1 :(得分:1)
在getName()
类的ToString()
方法中调用myobject
方法:
public class myobject
{
...
public override string ToString()
{
return getName();
}
}
或者将DisplayMemberPath
设置为myobject
类的公共属性的名称,该类返回您想要显示的值,如@zambonee所示:
ComboBox1.DisplayMemberPath = "Name";
答案 2 :(得分:0)
我会向您的myobject
类添加一个readonly属性,返回getName()
,然后将DisplayMemberPath
上的ComboBox
设置为该属性的名称。
如果名称可以更改,您将需要实现INotifyPropertyChange
并在应该更新值时为该属性引发其事件。