Детский контроль недоступен из-за модификатора доступа - PullRequest
3 голосов
/ 14 декабря 2009

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

Я могу получить доступ к элементам управления в той же сборке, но не в проекте, ссылающемся на сборку, где расположен пользовательский элемент управления. Есть ли способ переопределить модификатор доступа по умолчанию дочерних элементов управления в XAML, чтобы мне не пришлось вручную выставлять элементы управления через свойства в пользовательском элементе управления?

Ответы [ 2 ]

9 голосов
/ 14 декабря 2009

Вы пытались установить атрибут x:FieldModifier ваших дочерних элементов управления на "public"?

1 голос
/ 15 декабря 2009

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

Вы должны выставлять их реальные данные через свойства вашего UserControl. Лучше всего было бы представить интерфейс.

Другое решение (более «WPF-путь») будет использовать контекст данных как единственное свойство, к которому осуществляется доступ извне: элементы управления могут привязываться к нужным им свойствам.

...