Я хочу иметь абстрактный базовый класс для некоторых моих пользовательских UserControl
. Причина очевидна: они имеют некоторые общие свойства и методы (базовая реализация некоторых элементов интерфейса на самом деле), и я хочу реализовать их только один раз.
Я сделал это, определив свой абстрактный базовый класс:
public abstract class ViewBase : UserControl, ISomeInterface
Затем я приступил к реализации одного из моих представлений, как обычно, с дизайнером:
public partial class SpecialView : UserControl //all OK
До этого все в порядке. Теперь я заменяю происхождение моего SpecialView
класса на абстрактный базовый класс:
public partial class SpecialView : ViewBase //disrupts the designer
Теперь дизайнер Visual Studio 2008 больше не будет работать, заявив: The designer must create an instance of type 'ViewBase' but it cannot because the type is declared as abstract.
Как я могу обойти это? Я просто не хочу, чтобы один и тот же код копировался для всех этих представлений.
Информация: есть вопрос вопрос с виртуальными методами вместо абстрактных классов, но подходящего решения для меня нет.