WPF - Могу ли я остановить UserControl, выставив его именованные дочерние элементы? - PullRequest
0 голосов
/ 17 марта 2009

Это небольшой вопрос, но я только что понял, что если я создам UserControl и выберу имя для некоторых из его дочерних элементов а-ля -

<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();

Мне интересно, почему это так, и что более важно, как я могу безопасно инкапсулировать эти элементы управления.

Как обычно, ЛЮБАЯ помощь будет очень признательна.

1 Ответ

2 голосов
/ 17 марта 2009

То, что вы хотите, это атрибут 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>

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

...