嗯,我的问题有点傻,但我尝试了许多不同的事情而没有结果。
我的主窗体中有一个ComboBox,我想将其数据源指向Filters类中声明的公共只读List PriceChanges列表。没问题,但我想列出Description字段。
我尝试将“Description”字符串分配给DisplayMember属性但没有成功。我的ComboBox仅为每个条目列出:“BusinessLogic.PriceChange”,其中BusinessLogic是我的命名空间的名称,而PriceChange是该类。
我感谢任何帮助。
此致
这是我主要表格代码的一部分
public mainFrm()
{
InitializeComponent();
prodFilter = new Filters();
cbPriceChanges.DataSource = prodFilter.PriceChanges;
cbPriceChanges.DisplayMember = "Description"
}
这是声明List对象
的代码的一部分public enum PriceChangeTypes
{
No_Change,
Increased,
Decreased,
All
}
public class PriceChange
{
public String Description;
public readonly PriceChangeTypes Type;
public delegate bool ComparisonFuntionDelegate(Decimal a);
public readonly ComparisonFuntionDelegate ComparisonFunction;
public PriceChange(String Description, PriceChangeTypes type , ComparisonFuntionDelegate CompFunc)
{
this.Description = Description;
Type = type;
ComparisonFunction = CompFunc;
}
}
public class Filters
{
public readonly List<PriceChange> PriceChanges = null;
public Filters()
{
PriceChanges = new List<PriceChange>();
PriceChanges.Add(new PriceChange("No Change", PriceChangeTypes.No_Change, PriceChange => PriceChange == 0));
PriceChanges.Add(new PriceChange("Increased", PriceChangeTypes.Increased, PriceChange => PriceChange > 0));
PriceChanges.Add(new PriceChange("Decreased", PriceChangeTypes.Decreased, PriceChange => PriceChange < 0));
PriceChanges.Add(new PriceChange("All", PriceChangeTypes.All, a => true));
}
}
答案 0 :(得分:1)
您是否尝试过将“描述”设为属性?如果列表试图通过反射获取字段,它会发生很大的变化(最有可能)。
public class PriceChange {
public string Description{
get;
set;
}
// ...
}
答案 1 :(得分:0)
尝试将此添加到您的班级:
public override string ToString()
{
return Description;
}
目前您只是获取ToString的默认值,即对象命名空间和类