@Gnom30

Как унаследовать абстрактный класс в C#, WPF?

hi guys!
Для набора однотипных классов WPF (Window, Page или UserControl) требуется однотипное поведение, которое было бы очень элегантно и охуетительно вынести в базовый абстрактный класс вроде этого:
public abstract class BaseWindow
	{
		public abstract void AddintionalInit();
		public abstract void VisualInit();

		public string Converter()
		{
			return string.Empty; // TODO implement
		}
	}

Однако C# пишет что нельзя: Partial declarations of 'RanksWindow' must not specify different base classes
Если попытаться сделать базовый класс контролом и наследоваться от него, как в этом примере: geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx , пишет в xaml-разметке, что cannot be the root of a XAML file because it was defined using XAML В комментариях там же пишут, что способ работал в VS2005 SP1 + WPF, но перестал работать в VS2008 и всех последующих.

И как можно решить мою проблему? Временное решение, которое придумал: интерфейс для всей группы контролов и утилитарный класс, методы которого дергаются в каждом из контролов. Но это ж через жопу решение, помогите!

UPD: спасибо за ответы: как выяснилось - это невозможно. Видимо у меня завышенные ожидания от технологии Майкрософта, оставлю решение с интерфейсом и классом-хелпером.
  • Вопрос задан
  • 329 просмотров
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
Что за конченный вопрос? Таким матёрым программистам не место на этом форуме.
Partial declarations of 'RanksWindow' must not specify different base classes

Честно говоря, можно просто зайти в переводчик. Но я поясню, что c# сообщает об отсутствии поддержки множественного наследования. Что это значит? Это означает, что у вас в коде есть два объявления класса RanksWindow , один наследуется от BaseWindow, а второй - чего-то ещё, наверное Window. А нужно указать только одного родителя. И ещё выучить английский, или хотя бы научиться пользоваться переводчиком. И самое главное - культурно писать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы