Tipo anidado de referencia en ObjectDataProvider Markup
-
18-09-2019 - |
Pregunta
Estoy tratando de usar un tipo anidado en mi ObjectDataSource a la este artículo. No parece estar funcionando para mí.
<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
Solución
Este es un problema conocido en VS 2008 y más allá. La posición oficial de Microsoft es que no debería estar haciendo esto:
Si bien el XAML que está escribiendo es claramente legal, funciona en tiempo de ejecución y se carga correctamente en Expression Blend, actualmente no creemos que el uso y el acceso a las clases anidadas de las extensiones de marcado sea muy común en la construcción de aplicaciones.
Otros consejos
Una forma de trabajar x:Type
Las referencias a los tipos anidados es definir una nueva extensión de marcado y usarla en lugar del x:Type
Extensión de marcado. Publiqué información sobre uno de esos, incluida la fuente de la Type2Extension
clase, en esta respuesta.
los Type2Extension
no producirá errores de diseñador como el TypeExtension
lo hace. Quizás esto no ocurra en VS 2010.
La única advertencia es que la original TypeExtension
Usted usa con {x:Type
escribe un nombre}
es un poco más robusto que Type2Extension
(por ejemplo, verificar si los argumentos son nulos y de lanza excepciones).