2009-12-14 2 views
3

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

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

ответ

9

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

+0

Работал как очарование. –

1

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

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

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

Смежные вопросы