Question

Ceci est un peu une question de noob mais je viens de me rendre compte que si je crée un UserControl et choisis de nommer certains de ses éléments enfants à 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>

alors je peux référencer les éléments nommés dans le code-behind du XAML consommateur. Donc, pour l'exemple ci-dessus, je pourrais écrire

uControl.mainGrid = new Grid();

Je suis curieux de savoir pourquoi cela est le cas et, plus important encore, comment je peux encapsuler ces contrôles en toute sécurité.

Comme d'habitude, toute aide serait vraiment appréciée.

Était-ce utile?

La solution

Ce que vous voulez, c'est le x: FieldModifier attribut:

<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>

La valeur par défaut est interne , pour une raison quelconque. Vous pouvez en savoir plus à ce sujet ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top