2009-08-30 5 views
1

글쎄, 내 질문은 바보 같지만 결과가 전혀 다른 많은 것을 시도했다.ComboBox (C#)의 내용 표시 특정 필드 표시

필자는 메인 폼에 ComboBox를 가지고 있는데, 필자는이 데이터 소스를 Filters 클래스에 선언 된 public readonly List PriceChanges 목록에 연결하려고합니다. 문제는 없지만 설명 필드를 나열하고 싶습니다.

"설명"문자열을 DisplayMember 특성에 성공적으로 할당하려고했습니다. My ComboBox는 각 항목에 대해 "BusinessLogic.PriceChange"만 나열합니다. BusinessLogic은 내 네임 스페이스의 이름이고 PriceChange 클래스는 클래스입니다.

감사합니다.

감사

List 객체를 선언의

public mainFrm() 
    { 
     InitializeComponent(); 

     prodFilter = new Filters(); 
     cbPriceChanges.DataSource = prodFilter.PriceChanges; 
     cbPriceChanges.DisplayMember = "Description" 
    } 

코드의 일부입니다 내 기본 폼의 코드의 일부

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)); 
    } 
} 
+1

설명, 유형, ComparisonFuntionDelegate하고있다 된 toString 기본 값을 받고있어 ComparisonFunction은 실제로 private이거나 속성으로 만들어야합니다. –

답변

1

당신이 "설명"을 만드는 시도 되세요 재산? 리스트가 리플렉션을 통해 필드를 얻으 려 할 경우 많은 변화가 일어날 것입니다. 수업이 추가

public class PriceChange { 
    public string Description{ 
     get; 
     set; 
    } 
    // ... 
} 
+0

완벽한, 그게 다예요. 내 생각에이 물건이 어떻게 내부적으로 행동하는지에 대한 나의 기술을 깊이 생각해야한다고 생각합니다. 건배 친구 – Andres

+0

다행 그것 도움 :) –

0

시도 : 현재

public override string ToString() 
     { 
      return Description; 
     } 

방금 ​​개체의 네임 스페이스와 클래스