( .NET 2.0、System.Windows.FormsDataGridView および DataTable )
1 つのデータテーブルに接続された 1 つのデータグリッドがあります。
そのデータテーブルには 1 つの列が含まれています。自分のタイプ「MyObject」のオブジェクトが含まれています。
MyObject には、公開文字列プロパティ "MyProp" があります。
グリッドに 1 列を表示したい: テーブル内の MyObjects のプロパティ MyProp の文字列値を表示します。
しかし、私はそれを機能させることができないようです。
概略的に:
- myTable.Column1.Name: "オブジェクト"
- myDataSet には 1 つのテーブルが含まれています: myTable (いくつかの行で埋められています)
- myBindingSource.datasource = myDataSet
- myBindingSource.DataMember = myTable
- myDataGridView.DataSource = myBindingSource
myDataGridView: 1 DataGridViewTextBoxColumn
トライアウト 1:
Column.DataPropertyName="Obj" (デフォルトで生成)
(オーバーライドされた) MyObject.ToString() の結果を表示します。本当に欲しいものではありません。この関数はログに使用されています。
- トライアウト 2:
GridViewColumn.DataPropertyName="Obj.MyProp"
何も表示しません (MyProp のgetは呼び出されません)
試行 3: MyProp プロパティをバインド可能にしました。
[Bindable (BindableSupport.Yes)] public string MyProp { ...
トライアウト2と同じ、変わらない
要するに:
GridViewColumn.DataPropertyName は、データテーブルの列内のオブジェクトへのドリルダウンをサポートしていないようです。
誰でもアイデアはありますか?
前もって感謝します!
1月