Ну, мой вопрос немного глуп, но я пробовал много разных вещей безрезультатно.
В основной форме у меня есть ComboBox, и я хочу указать его источник данных на общедоступный список ListChanges только для чтения, объявленный в классе Filters. Нет проблем с этим, но я хочу перечислить поле Описание.
Я попытался присвоить строку «Описание» атрибуту 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));
}
}