Mam DataGridView. I ustawić jego .DataSource rekwizyt być BindingList moich własnych obiektów: a BindingList<IChessItem>
Formatowanie warunkowe DataGridView
Potem stworzył kilka kolumn dla niego ..
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);
Moje pytanie brzmi .. Chcę pokolorować jedną z kolumn ZIELONY na podstawie danych z innego pola mojej listy powiązań). Jak mogę to zrobić?
I naprawdę nie trzeba pokazać tego pola, po prostu chcą działać na danych zawartych w nim ..
w moim przypadku, jedną z dziedzin IChessItem pokazuje, czy rekord jest nowy, a ja chcesz pokolorować inne pola w datagridview, aby to odzwierciedlić.
interesujące. Wygląda na to, że to powinno działać, niestety, this.dataGridView1.Columns [e.CumnumnIndex] .Name zwraca "", gdy tylko się tu dostanie. Wygląda na to, że * powinno * działać. – KevinDeus
okok. Mam go do pracy przy użyciu .DataPropertyName (ponieważ zostało to skonfigurowane w powyższym kodzie) i skierowanie go z powrotem do elementu datagrid (ponieważ mój sourcelist został wymazany przez ten punkt ..) IChessItem item = ((BindingList) this.dgvAvailableMoves.DataSource) [e.RowIndex]; –
KevinDeus
Bardziej niezawodnym podejściem jest porównywanie bezpośrednio z kolumną, zamiast sprawdzania nazwy kolumny, tj. 'If (dataGridView.Columns [e.ColumnIndex] == dataGridViewColumnXXX) ... –