При добавлении DataGridView в IronPython Studio Winforms получает "объект DataGridView не имеет атрибута BeginInit"
Просто добавляя представление данных в IronPython Studio, вы запускаете объект "DataGridView" без атрибута "BeginInit". можно ли это исправить?
Ошибки исчезают, если строки self._DataGridView1.BeginInit() и self._DataGridView1.EndInit() удалены, но это не то, что нужно сделать, чтобы это исправить
1 ответ
Этого нет, и скорее всего не будет, потому что IronPython Studio больше не поддерживается. DataGridView.BeginInit реализован явно, а IronPython Studio основан на IronPython 1.1. Возможно, вам удастся обойти эту проблему, изменив значение на "ISupportInitialize.BeginInit(self._DataGridView1)" после импорта ISupportInitialize, но я сомневаюсь, что оно выживет при обходе через дизайнер.
Если вы хотите исправить это самостоятельно, исходный код для IronPython Studio доступен, и вы можете попробовать изменить код конструктора winforms, чтобы заметить явный вызов реализации интерфейса и вместо этого испустить этот код. Скорее всего, это просто исправление генератора CodeDom от IronPython.
Но на самом деле я бы посоветовал вам перейти на IronPython Tools и WPF. Генерирование кода для дизайнера WinForms не очень хорошо работает с IronPython, а WPF гораздо удобнее. Альтернативный план состоял бы в том, чтобы сгенерировать WinForm с конструктором в C# и создать его подкласс из Python.