Domanda

Questa è una domanda un po 'noob, ma mi sono appena reso conto che se creo un UserControl e scelgo di nominare alcuni dei suoi elementi figlio alla -

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

quindi posso fare riferimento agli elementi nominati nel code-behind dell'XAML che consuma. Quindi, per l'esempio sopra, potrei scrivere

uControl.mainGrid = new Grid();

Sono curioso di sapere perché questo è il caso e, soprattutto, come posso incapsulare in modo sicuro questi controlli.

Come al solito, QUALUNQUE aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

Quello che vuoi è x: FieldModifier attributo:

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

L'impostazione predefinita è interna , per qualche motivo. Puoi leggere di più a riguardo qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top