Domanda

Sto cercando di usare un tipo nidificato nella mia ObjectDataSource a la questo articolo. Non sembra funzionare per me.

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
È stato utile?

Soluzione

Questo è un problema noto nel VS 2008 e oltre. La posizione ufficiale di Microsoft è che non dovresti farlo:

Mentre la XAML che stai scrivendo è chiaramente legale, funziona in fase di esecuzione e si carica correttamente nella miscela di espressione, al momento non crediamo che l'uso e l'accesso alle classi nidificate dalle estensioni di markup siano molto comuni nella costruzione di applicazioni.

Altri suggerimenti

Un modo per aggirare x:Type I riferimenti ai tipi nidificati devono definire una nuova estensione di markup e usarla invece di x:Type Estensione di markup. Ho pubblicato informazioni su uno di questi, inclusa la fonte per il Type2Extension classe, in questa risposta.

Il Type2Extension non produrrà errori di progettista come il TypeExtension fa. Forse questo non si verificherà in VS 2010.

L'unico avvertimento è che l'originale TypeExtension usi con {x:Type dattilicologia} è un po 'più robusto di Type2Extension (Ad esempio, controllando se gli argomenti sono nulli e lanciano eccezioni).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top