2009-05-22 6 views
5

私はリストにDataGridViewをバインドしようとしています。MyObjectはDataGridViewをList <>にバインドすると、一部のプロパティが表示されない

のように見えます。
class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

//List<MyObject> objects; 
grid.Columns[0].DataPropertyName = "Property1"; 
grid.DataSource = objects; 

代わりにProperty2も表示されているDataGridViewに別の列を追加します。どのようにしてそれが追加されるのを防ぐことができますか?

答えて

9

あなたはプロパティが表示されていることたくない場合は、次の

class MyObject 
{ 
    public string Property1 { get; set; } 
    [Browsable(false)] 
    public string Property2 { get; set; } 
} 

をそれ以外の場合は、すでに述べたように - falseにAutoGenerateColumnsを設定し、それらを手動で追加します。

2

DataGridViewコントロールのAutoGenerateColumnsプロパティがTrueに設定されているようです。 Falseに設定するか、.Columns.Removeメソッドを使用して表示したくない列を削除することができます。

0

私は、手動で列を設定する必要があると思います。しかし、彼の例よりも多くのプロパティを設定したいかもしれません。これは私がプロジェクトで行ったことです:

DataGridView dataGridView = new DataGridView(); 
dataGridView.AutoGenerateColumns = false; 

DataGridViewColumn columnA = new DataGridViewTextBoxColumn(); 
columnA.DataPropertyName = "propertyA"; 
columnA.HeaderText = "Column A"; 
columnA.Name = "columnA"; 

DataGridViewColumn columnB = new DataGridViewTextBoxColumn(); 
columnB.DataPropertyName = "propertyB"; 
columnB.HeaderText = "Column B"; 
columnB.Name = "columnB"; 

dataGridView.Columns.Clear(); 
dataGridView.Columns.Add(columnA); 
dataGridView.Columns.Add(columnB); 
dataGridView.AutoResizeColumns(); 

私は上記の作品が信じています。奇妙な例外チェックがある場合は、列/セルに既定のセルスタイルが定義されていることを確認してください。

関連する問題