Como faço para acessar um elemento de um modelo de controle de dentro do code-behind

Estou tentando acessar um controle de usuário que está dentro do modelo de controle de um controle de conteúdo. Especificamente:

     

Eu posso acessar this.MyList mas diz this.MyControlName não foi encontrado. Como faço para acessar o object MyControlName de code-behind nessa situação?

Obrigado!

Você precisa obter o modelo e localizar o controle pelo nome no controle de modelo, algo como:

 var template = MyList.Template; var myControl = (MyControl)template.FindName("MyControlName", MyList); 

Modelos são apenas isso: Descrições abstratas do que deve ser criado, os controles em modelos existem apenas no contexto de algo que está sendo modelado.


Observe que você só deve acessar os elementos em um modelo de controle se estiver criando o controle para o qual o modelo se destina. O access de fora deve ser feito através de propriedades e methods vinculados.

Para modelos de dados, isso é semelhante. Todas as coisas que você precisa acessar devem estar vinculadas a um object e o access deve passar pelo object mencionado. Isso é especialmente verdadeiro em casos de controles de itens que virtualizam seus itens, de modo que os elementos nem sequer existem na maioria das vezes.

U também pode obter o controle de cada modelo adicionando o evento Carregado no controle e, em seguida, no código, atribuir o remetente do evento a alguma variável.