Область управления внутри Silverlight XAML - PullRequest
2 голосов
/ 22 апреля 2010

Я определил текстовое поле с x: Name = "txtMyTextBox" внутри UserControl под названием MyView. Я заметил, что могу сделать следующее:

MyView myView = new MyView();
myView.txtMyTextBox.Text = "something";

Почему txtMyTextBox доступен таким образом? Это публичное или внутреннее поле? Могу ли я сделать это частным?

1 Ответ

2 голосов
/ 22 апреля 2010

Дизайнер Silverlight XAML создает поля для именованных элементов, чтобы вы могли получить к ним доступ из кода. Вы можете увидеть сгенерированный файл, если зайдете в код и выберете InitializeComponent из выпадающего списка выбора методов в верхней части. Он хранится в частичном файле. В прошлом поля, сгенерированные дизайнером, были ограничены как частные, но по какой-то причине я не могу понять, что текущая коллекция дизайнеров XAML (VS2010, Blend) создает ее как внутреннюю .

Вы можете изменить видимость создаваемого поля с помощью атрибута x:FieldModifier, но вам, вероятно, не нужно беспокоиться об этом. Если вам нужно, вы должны предоставить общедоступное свойство из вашего пользовательского элемента управления, который вместо этого оборачивает доступ к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...