我有一個DataGridView。我把它.DataSource道具是我自己的對象的的BindingList:一個BindingList<IChessItem>
有條件的DataGridView格式化
我然後創建了一些列吧..
DataGridViewTextBoxColumn descColumn = new DataGridViewTextBoxColumn();
descColumn.DataPropertyName = "Description";
descColumn.HeaderText = "Description";
descColumn.Width = 300;
DataGridViewTextBoxColumn gameIDColumn = new DataGridViewTextBoxColumn();
gameIDColumn.DataPropertyName = "GameID";
gameIDColumn.HeaderText = "Game ID";
gameIDColumn.Width = 60;
dataGrid.Columns.Add(descColumn);
dataGrid.Columns.Add(gameIDColumn);
我的問題是..我要的顏色中的一列GREEN基於我的BindingList的另一個字段中的數據)。我怎樣才能做到這一點?
我真的沒有顯示這個領域,我只是想讓其中的數據採取行動..
在我的情況,IChessItem的領域之一顯示記錄是否是新的,我想要爲datagridview中的其他字段着色以反映這一點。
有趣。這看起來像應該工作,不幸的是,當它到達這裏時,this.dataGridView1.Columns [e.ColumnIndex] .Name將返回「」。它看起來像*應該*工作。 – KevinDeus 2010-11-02 06:02:33
okok ..我通過使用.DataPropertyName(因爲這是在我的代碼中設置的),並指向它返回到datagrid項目(因爲我的sourcelist已被擦除此點..)IChessItem item = ((BindingList)this.dgvAvailableMoves.DataSource)[e.RowIndex]; –
KevinDeus
2010-11-02 06:14:09
更強大的方法是直接比較列而不是檢查列名,即'if(dataGridView.Columns [e.ColumnIndex] == dataGridViewColumnXXX)...' – 2013-10-31 23:10:55