Переопределил класс Page, обозвал его ConfigPage : Page
создаю WPF Page
Например Page1 : Page
но я хочу унаследовать его от ConfigPage, а компилятор при этом ругается. Соответственно в xaml тоже надо изменить базовый элемент с<Page></Page> на <ConfigPage></ConfigPage>, но тогда конструктор хамла ругается что не может найти тип ConfigPage
вот тут я бы мог сделать через интерфейсы, то есть определить интерфейс IConfigPage и реализовать его в Page1 : Page, IConfigPage, но таких контролов несколько (Page1, Page2 ....), и мне в коде требуется их возвращать, то есть требуется обобщенный тип данных, каким и является ConfigPage.
Посоветуйте что делать.
Вам к гадалке надо. Что говорит компилятор? Чтобы свои типы использовать в xaml, надо добавить пространство имён в xaml. Для этого используется атрибут xmlns у корневого элемента, в качестве значения используете clr-namespace:<ваше пространство имен>.
А дальше уже слабо понятно что хочется.
Вопросы так задавать не следует. Начинайте с общего (что делаете вообще) и двигайтесь вглубь, если это требуется.
Тут едва ли можно дать ответ абстрактно. Придется реализовать. Компилятор ругается, что в xaml.cs базовым классом является ConfigPage, а в xaml базовым элементом является Page. я ведь это написал.
Пространство имен определяется в базовом элементе <page xmlns=".....
но для этого нужен сам базовый элемент... Замкнутый круг получается. Мне надо базовым сделать ConfigPage, а его нет в пространстве имен, которое определяется внутри него.
Мне требуется добавить некоторые методы и функции в класс Page (получаем новый abstract class ConfigPage : Page). Далее я создам классы от нового класса ConfigPage. Например это будут Page1 : ConfigPage, Page2:ConfigPage и тд. Далее экземпляры этого нового класса будут сохранены в ListDictionary. Далее я хочу к ним обращаться через foreach(ConfigPage control in dictionarylist.Values) чтобы получить доступ к новым методам, которых нет в Page но есть в ConfigPage. Но я не могу создать классы Page1, Page2 и тд и унаследовать их от ConfigPage, потому что компилятор выдает ошибку
Ошибка 2 Частичные объявления "ConfigWPF.GUI.controls.crypto.CryptoProSetting" не должны определять различные базовые классы
Причину этой ошибки я написал выше.
Как это исправить я не знаю, поэтому я решил добавить интерфейс IConfigPage и Page1, Page2 и тд уже наследовать от него
Page1 : Page, IConfigPage
Но когда я обращаюсь к этим Page1 и Page2 через foreach(Page control in dictionarylist.Values)
у меня уже нет доступа к методам, которые я определил в интерфейсе.
Я не знаю как описать подробнее, по наводящим вопросам могу объяснить.