2009-03-17 10 views
0

C'est un peu une question noob mais je viens de réaliser que si je crée un UserControl et choisir de nommer quelques-uns de ses éléments enfants à la -WPF - Puis-je empêcher UserControl d'exposer ses éléments enfants nommés?

<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 faire référence à la éléments nommés dans le code-behind du XAML consommateur. Donc, pour l'exemple ci-dessus que je pourrais écrire

uControl.mainGrid = new Grid(); 

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

Comme d'habitude, n'importe quelle aide serait vraiment appréciée.

Répondre

2

Ce que vous voulez est l'attribut x:FieldModifier:

<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 lire plus à ce sujet here.

+0

lol. C'est la pire décision de conception que j'ai jamais vue! Merci l'homme, grande aide. – Stimul8d