Silverlight 4 Поддержка x: TypeArguments - PullRequest
4 голосов
/ 24 ноября 2010

У меня есть базовый класс базовой страницы, который я хотел бы использовать со своими страницами Silverlight. Единственная проблема заключается в том, что атрибут x: TypeArguments не работает.

Атрибут применяется только к корневому элементу страницы XAML и больше нигде.

Я получаю сообщение об ошибке от компилятора: "Using the generic type 'Base.BasePage<T>' requires 1 type arguments". Эта ошибка всегда указывает на сгенерированный файл Page.g.i.cs.

Вот пример того, как выглядит мой корневой элемент:

<Base:BasePage x:TypeArguments="ViewModels:MyViewModel">

У меня были проблемы с поиском хорошей информации о том, поддерживается ли это в Silverlight 4. Любая помощь будет принята с благодарностью Спасибо!

Ответы [ 2 ]

3 голосов
/ 24 ноября 2010

К сожалению, он еще не поддерживается в Silverlight. Если вы хотите включить класс в XAML, он не может быть универсальным. Вы все еще можете иметь универсальный шаблон и добавить его в дерево визуалов из кода, но не напрямую в XAML.

0 голосов
/ 17 июня 2011

Этот обходной путь применяется только к приложениям WPF.В настоящее время Silverlight не поддерживает свойство x: TypeArguments, которое требуется для корневого тега XAML производного элемента управления.

Если у вас должны быть элементы управления Silverlight, производные от базового базового класса, вам нужно проделать дополнительную работу.По сути, вам нужно иметь дополнительный класс посередине, чтобы UserControl был производным от неуниверсального класса

Базовый класс: открытый класс GenericBase: UserControl

Средний класс: открытый класс MiddleStringControl:GenericBase

UserControl: открытый класс UserControlWithGenericBase: MiddleStringControl

вы можете видеть эту веб-страницу

производную от базового базового класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...