Ошибка:
Ссылка на объект не указывает на экземпляр объекта.Автор: Дьяченко Александр
Дата: 27.06.13
Описание проблемы:
Т.к. у _errorsGrid (DataGridView) свойство AutoGenerateColumns = true, то при задании свойства DataSource происходит обновление списка колонок в процессе которого порядок ранее созданных колонок почему-то меняется и условие в обработчике события CellFormating ловит не ту колонку:
private void _errorsGrid_CellFormatting(
object sender,
DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 0) // Например у меня колонка содержащая SyncErrorType идет с индексом 1
switch ((SyncErrorType)e.Value)
{
case SyncErrorType.Warning:
e.Value = _warningIcon;
break;
case SyncErrorType.CriticalError:
e.Value = _errorIcon;
break;
default:
e.Value = null;
break;
}
}
Описываю подробно может еще кому пригодится.
Патч:
diff -r 4aea210eed02 Janus/Core/Synchronization/UI/SyncForm.cs
--- a/Janus/Core/Synchronization/UI/SyncForm.cs Sat Oct 26 22:36:34 2013 +0400
+++ b/Janus/Core/Synchronization/UI/SyncForm.cs Tue Nov 19 23:31:54 2013 +0800
@@ -108,6 +108,7 @@
_syncTaskList.SmallImageList = _taskStateImages;
_pinCheck.Checked = Config.Instance.SyncWindowPinned;
_splitContainer.Panel2Collapsed = true;
+ _errorsGrid.AutoGenerateColumns = false;
_errorsGrid.DataSource = _errors;
Height = _normalHeight;
}
У кого есть права на запись примените патч пожалуста.
... << RSDN@Home 1.2.0 alpha 5 rev. 75>>