WPF - Can I parada UserControl expondo seus elementos filho chamados?
-
19-08-2019 - |
Pergunta
Este é um pouco de uma questão de noob, mas eu só percebi que se eu criar um UserControl e escolha para citar alguns dos seus elementos filho de um la -
<UserControl x:Class="UserControls.uControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Grid x:Name="maingrid">
</Grid>
então eu posso referenciar os elementos nomeados no código-behind do XAML consumindo. Assim, para o exemplo acima eu poderia escrever
uControl.mainGrid = new Grid();
Estou curioso para saber porque este é o caso e, mais importante, como posso encapsular segurança esses controles.
Como de costume, qualquer ajuda seria muito apreciada.
Solução
O que você quer é o x:FieldModifier
atributo:
<UserControl x:Class="UserControls.uControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="300">
<Grid x:Name="maingrid" x:FieldModifier="private">
</Grid>
</UserControl>
O padrão é interno , por algum motivo. Você pode ler mais sobre isso aqui .
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow