При добавлении DataGridView в IronPython Studio Winforms получает «объект DataGridView не имеет атрибута BeginInit» - PullRequest
2 голосов
/ 04 июня 2010

Просто добавив сетку данных в IronPython Studio, вы получите «Объект DataGridView» не имеет атрибута «BeginInit». можно ли это исправить?

Ошибки исчезают, если строки self._DataGridView1.BeginInit () и self._DataGridView1.EndInit () удалены, но это не то, что нужно сделать, чтобы исправить это

1 Ответ

2 голосов
/ 05 июня 2010

Исправления нет, и, скорее всего, не будет, потому что 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.

...