Question

J'essaye d'utiliser un type imbriqué dans mon objetdatasource à la cette article. Cela ne semble pas fonctionner pour moi.

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
Était-ce utile?

La solution

Il s'agit d'un problème connu en VS 2008 et au-delà. La position officielle de Microsoft est que vous ne devriez pas faire cela:

Bien que le XAML que vous écrivez soit clairement légal, fonctionne au moment de l'exécution et se charge correctement dans Expression Blend, nous ne pensons pas actuellement que l'utilisation et l'accès aux classes imbriquées à partir d'extensions de balisage sont très courantes dans le bâtiment des applications.

Autres conseils

Une façon de contourner x:Type Les références à des types imbriqués consistent à définir une nouvelle extension de balisage et à l'utiliser au lieu du x:Type Extension de balisage. J'ai publié des informations sur une telle telle Type2Extension classe, dans Cette réponse.

La Type2Extension ne produira pas d'erreurs de concepteur comme le TypeExtension Est-ce que. Cela ne se produira peut-être pas dans VS 2010.

La seule mise en garde est que l'original TypeExtension vous utilisez avec {x:Type typename} est un peu plus robuste que Type2Extension (Par exemple, vérifier si les arguments sont nuls et lancer des exceptions).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top