Frage

Ich versuche, einen verschachtelten Typ in meiner ObjectDataSource a la zu verwenden Dies Artikel. Es scheint nicht für mich zu funktionieren.

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
War es hilfreich?

Lösung

Dies ist ein bekanntes Thema in VS 2008 und darüber hinaus. Die offizielle Position von Microsoft ist, dass Sie dies nicht tun sollten:

Während das XAML, das Sie schreiben, ist eindeutig legal, arbeitet zur Laufzeit und lädt korrekt in der Ausdrucksmischung ein. Wir sind derzeit nicht der Ansicht, dass die Verwendung von und der Zugriff auf verschachtelte Klassen aus Markup -Erweiterungen im Anwendungsaufbau sehr häufig ist.

Andere Tipps

Eine Möglichkeit, umzuarbeiten x:Type Verweise auf verschachtelte Typen besteht darin, eine neue Markup -Erweiterung zu definieren und sie anstelle der zu verwenden x:Type Markup -Erweiterung. Ich habe Informationen zu einem solchen veröffentlicht, einschließlich Quelle für die Type2Extension Klasse, in Diese Antwort.

Das Type2Extension produziert keine Designerfehler wie die TypeExtension tut. Vielleicht wird dies in VS 2010 nicht geschehen.

Die einzige Einschränkung ist, dass das Original TypeExtension Sie verwenden mit {x:Type Modellname} ist etwas robuster als Type2Extension (z. B. prüfen, ob Argumente null sind und Ausnahmen werfen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top