Pregunta

Esta es una pregunta un poco novata, pero me acabo de dar cuenta de que si creo un UserControl y elijo nombrar algunos de sus elementos secundarios a 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>

entonces puedo hacer referencia a los elementos nombrados en el código subyacente del XAML consumidor. Entonces, para el ejemplo anterior, podría escribir

uControl.mainGrid = new Grid();

Tengo curiosidad por saber por qué este es el caso y, lo que es más importante, cómo puedo encapsular estos controles de forma segura.

Como de costumbre, CUALQUIER ayuda sería muy apreciada.

¿Fue útil?

Solución

Lo que quiere es el 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>

El valor predeterminado es interno , por alguna razón. Puede leer más al respecto aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top