Справочный вложенный тип в ObjectDataprovider Markup
-
18-09-2019 - |
Вопрос
Я пытаюсь использовать вложенный тип в моем ObjectDataSource a la это статья. Кажется, это не работает для меня.
<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
Решение
Это известная проблема в VS 2008 и за его пределами. Официальная позиция Microsoft заключается в том, что вы не должны этого делать:
Хотя XAML, который вы пишете, явно законны, работают во время выполнения, и правильно нагрузки в смешивание выражения, в настоящее время мы не считаем, что использование и доступ к вложенным классам из расширений наценки очень распространены в здании приложений.
Другие советы
Один из способов обойтись x:Type
Ссылки на вложенные типы заключаются в том, чтобы определить новое расширение разметки и использовать его вместо x:Type
Расширение разметки. Я опубликовал информацию об одном подобном, включая источник для Type2Extension
класс, в этот ответ.
А Type2Extension
не будет производить дизайнерские ошибки, как TypeExtension
делает. Возможно, это не произойдет в VS 2010.
Единственное предостережение - это то, что оригинал TypeExtension
Вы используете с {x:Type
типов}
немного более надежно, чем Type2Extension
(Например, проверяя, являются ли аргументы нулевые и бросают исключения).