Почему контроль недоступен из-за его уровня защиты?
Я пытаюсь получить доступ к элементу управления текстовым свойством из 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"
решило проблему.