WPF - Могу ли я запретить UserControl раскрывать свои именованные дочерние элементы?
-
19-08-2019 - |
Вопрос
Это немного новичковый вопрос, но я только что понял, что если я создам UserControl и выберу имена некоторых его дочерних элементов 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>
затем я могу ссылаться на именованные элементы в коде, лежащем в основе используемого XAML.Итак, для приведенного выше примера я мог бы написать
uControl.mainGrid = new Grid();
Мне любопытно, почему это так и, что более важно, как я могу безопасно инкапсулировать эти элементы управления.
Как обычно, мы были бы очень признательны за любую помощь.
Решение
То, что вы хотите, это 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>
Значение по умолчанию равно внутренний, по какой-то причине.Вы можете прочитать об этом подробнее здесь.
Не связан с StackOverflow