2016-07-25 2 views
0

WinFormsのDataGridViewコントロールで視覚化されるオブジェクトのコンテナが必要です。デザイン時にカスタムオブジェクトのコンテナをバインドする方法

私が知る限り、DataGridViewにコンテナをバインドするには、DataSourceプロパティを使用します。

しかし、Designerでこれを行う方法はありますか?私はそれに関連する多くのオプション(DataSourceDataMemberなど)を見ていますが、Formクラスの中で私自身のコンテナを選択する可能性のあるオプションはありません。

私はデザイナーで利用可能な場合、この種のものをプログラムで作成したくありません。

答えて

1

DataSourceはデザイナーでバインド可能です。 DataGridViewの上部にある小さな矢印を押し、データソースを選択することができます。あなたのデータソースが含まれている、クラスを追加した後下部には>プロジェクトデータソースの追加...

enter image description here

、あなたはパブリックプロパティがあなたのデータソースであるプロパティペインで設定することができます。例えば

public class ThereIsDataSourceInThisClass 
{ 
    public ThereIsDataSourceInThisClass() 
    { 
     MyDataSource = new BindingList<Thing>(); 
     MyDataSource.Add(new Thing { First = "aa", Second = "bb" }); 
    } 

    public BindingList<Thing> MyDataSource { get; set; } 

    public class Thing 
    { 
     public string First { get; set; } 
     public string Second { get; set; } 
    } 
} 

私は、DataSourceプロパティでMyDataSourceを選択するよりも、ウィザードでThereIsDataSourceInThisClassを選択しました。

結果はそう>

enter image description here

+0

で、 'BindingList'はその' DataGridView'の 'DataSource'あるクラスのプロパティすべきですか?代わりに、この 'BindingList'を' Form'クラスの中に置くことができますか? – FrozenHeart

+0

あなたはしないでください。バインドとは、Model/ViewModelからViewを切り離すことです。 – ntohl

+0

ウィザードで「フォーム」を選択した場合も同様です。ただチェックしました – ntohl

関連する問題