Pergunta

Estou tentando usar um tipo aninhado no meu objectDataSource a la isto artigo. Não parece estar funcionando para mim.

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
Foi útil?

Solução

Esta é uma questão conhecida no VS 2008 e além. A posição oficial da Microsoft é que você não deveria estar fazendo isso:

Enquanto o XAML que você está escrevendo é claramente legal, trabalha em tempo de execução e carrega corretamente na mistura de expressão, atualmente não acreditamos que o uso e o acesso a classes aninhadas das extensões de marcação seja muito comum na construção de aplicativos.

Outras dicas

Uma maneira de contornar x:Type referências a tipos aninhados é definir uma nova extensão de marcação e usá -la em vez do x:Type Extensão de marcação. Eu publiquei informações sobre um desses, incluindo a fonte para o Type2Extension classe, IN esta resposta.

o Type2Extension não produzirá erros de designer como o TypeExtension faz. Talvez isso não ocorra no VS 2010.

A única ressalva é que o original TypeExtension você usa com {x:Type Digite o nome} é um pouco mais robusto do que Type2Extension (por exemplo, verificando se os argumentos são nulos e jogando exceções).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top