Вопрос

Я пытаюсь использовать вложенный тип в моем 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 (Например, проверяя, являются ли аргументы нулевые и бросают исключения).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top