У меня есть родительский контентный контроль, который отображает данные через табличку с данными. Табличка данных содержит панель стека с несколькими пользовательскими контроллерами одного типа. Мне нравится устанавливать свойство только один раз в родительском элементе управления, он должен устанавливать значение свойства во всех элементах управления. Но если есть способ сделать это на панели стека, это тоже нормально. Шаблон может быть изменен во время выполнения, и значения также необходимо распространить на новый шаблон.
Мое текущее решение состоит в том, чтобы реализовать свойство как для родительского, так и для субконтроля и использовать код для передачи значения из родительского во все субконтроли. Мой вопрос: есть ли лучший или другие способы сделать это?
EDIT:
Несколько пояснений к моему вопросу. В настоящее время приложение является WPF, но если оно переносимо на silverlight, это будет бонусом. Свойство является зависимостью типа Style.
Я хочу использовать его для стилизации части субконтроля. В настоящее время шаблон данных хранится в отдельном словаре ресурсов, поэтому его можно использовать повторно. Визуальные элементы субконтроля оформляются с помощью контрольной таблицы. Шаблон содержит три разных элемента управления, первый из которых является меткой. Необходимость (желание, глупое желание) состоит в том, чтобы установить стиль только один раз, чтобы дать метке на всех субконтролях в шаблоне данных последовательный внешний вид.
Таким образом, суть проблемы состоит в том, чтобы переопределить значение свойства зависимостей стиля в субконтроле, хранящемся в словаре ресурсов из элемента управления контейнера. Оба являются пользовательскими элементами управления, поэтому все параметры открыты.
<Parent SubSubStyle="x" Template="template" />
<DataTemplate x:Key=template>
<StackPanel>
<Subcontrol SubSubStyle="?"/>
<Subcontrol SubSubStyle="?"/>
<Subcontrol SubSubStyle="?"/>
<Subcontrol SubSubStyle="?"/>
</StackPanel>
</DataTemplate>