WPF - Могу ли я запретить UserControl раскрывать свои именованные дочерние элементы?

StackOverflow https://stackoverflow.com/questions/655265

Вопрос

Это немного новичковый вопрос, но я только что понял, что если я создам 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>

Значение по умолчанию равно внутренний, по какой-то причине.Вы можете прочитать об этом подробнее здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top