2012-01-12 11 views
0

テーブル(特にDevExpress GridControl)をSortedListにバインドしようとしています。私は、テーブルの最初の列はSortedListののキーとSortedListのキーの中のオブジェクトのフィールドにバインドされる第2の列にバインドしたい、例えば、これは「doesnのGridControlをSortedListにバインドする

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     InitializeTable(); 
    } 

    public void InitializeTable() 
    { 
     SortedList<DateTime, Dividend> EquityDividends = new SortedList<DateTime, Dividend>(); 

     EquityDividends.Add(new DateTime(2011, 1, 12, 16, 30, 00, DateTimeKind.Local), new Dividend(new DateTime(2011, 1, 12, 16, 30, 00, DateTimeKind.Local), "120", 12, new TimeSpan(4, 0, 0))); 
     EquityDividends.Add(new DateTime(2011, 1, 13, 16, 30, 00, DateTimeKind.Local), new Dividend(new DateTime(2011, 1, 12, 16, 30, 00, DateTimeKind.Local), "125", 12, new TimeSpan(4, 0, 0))); 

     gridControl1.DataSource = new BindingSource() { DataSource = EquityDividends }; 

     bandedGridView1.Columns[1].FieldName = "ExpectedDividend"; 
    } 
} 

public class Dividend 
{ 
    public DateTime InDividendDate; 
    public string ExpectedDividend; 
    public double Adjustment; 
    public TimeSpan TimeRemaining; 

    public Dividend(
     DateTime InDividendDate, 
     string ExpectedDividend, 
     double Adjustment, 
     TimeSpan TimeRemaining) 
    { 
     this.InDividendDate = InDividendDate; 
     this.ExpectedDividend = ExpectedDividend; 
     this.Adjustment = Adjustment; 
     this.TimeRemaining = TimeRemaining; 
    } 
} 

(キーは列0に入り、 "WindowsFormsApplication10.Dividend"という文字列が列1に表示されます)。誰にも何か提案はありますか?

答えて

1

ただ、クラスDividendの方法ToString()をオーバーライドして、あなたがそのようにしたい値を返す:

public override string ToString() 
{ 
    return "MyValue"; 
} 

あなたがキーとToString()から返された値を持つ1列に1列を取得します。

+0

しかし、複数の列を持ち、それぞれの列をDividendクラスの別のプロパティに結び付けたい場合はどうすればよいですか? – William

関連する問題