Почему контроль недоступен из-за его уровня защиты?

Я пытаюсь получить доступ к элементу управления текстовым свойством из program.cs, и он говорит, что он недоступен из-за защищенного уровня. Как я могу это исправить?

Ответы

Ответ 1

Это свойство по умолчанию для элементов управления, и его можно решить, перейдя в Design-View для формы, которая содержит указанный элемент управления, а затем измените свойство Control Modifiers на Public или Internal. Это должно сделать это!:)

Ответ 2

Уровень защиты управления разрешен

Перейдите в элемент управления поисковым файлом дизайнера по идентификатору, например, txtModel измените модификатор защищенный на общедоступный модификатор

Ответ 3

Концепция - уровень защиты. Как мы изучали в Object Oriented Paradigm, ваши переменные класса членов закрываются и устанавливаются или получаются из Property.Thats, почему это не хороший подход.

Ответ 4

Использовать x:FieldModifier="public" например

<TextBlock x:FieldModifier="public" x:Name="AccessibleTextBlock" />

как объяснено здесь: Изменение видимости видимого поля XAML

В моем случае я помещал UserControl в другую DLL. Соглашение WPF должно устанавливать все именованные поля как internal по умолчанию. Использование x:FieldModifier="public" решило проблему.