WPF - Posso impedire a UserControl di esporre gli elementi figlio con nome?
-
19-08-2019 - |
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.
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