Итак, я пишу UserControl, который является составной частью пары других элементов управления. В частности, диаграмма, другой пользовательский диапазон управления датами и ContentPresenters, чтобы заполнить другие области экрана.Передача стиля дочернему элементу UserControl
Так что я связывание моего содержания презентаторов зависимостей свойств красиво с {Binding ElementName=chartView, Path=RightContent}
, и я думаю, если я хочу, чтобы передать дополнительный стиль точки данных вплоть до фактического контроля наброска я мог бы сделать что-то вроде {Binding ElementName=chartView, Path=DataPointStyle}
привязать к свойству зависимостей типа.
К сожалению, это дает мне ошибку System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=chartView'. BindingExpression:Path=DataPointStyle; DataItem=null; target element is 'ColumnSeries' (Name=''); target property is 'DataPointStyle' (type 'Style')
Так что я думаю, что есть какая-то странная XAML обзорное вещь с тем, как диаграммы и ColumnSeries контрольных работ. Это элемент управления Chart из инструментария WPF за февраль 2010 года, поэтому, если есть что-то более современное, я должен использовать в любом случае, это было бы здорово узнать.
Так в основном:
<UserControl x:Class="MyFramework.Controls.ChartView"
x:Name="chartView"
...>
...
<!-- Works great -->
<ContentPresenter Content="{Binding ElementName=chartView, Path=TopContent}" />
<!-- Doesn't work -->
<charting:Chart>
<charting:ColumnSeries DataPointStyle="{Binding ElementName=chartView, Path=DataPointStyle}" />
</charting:Chart>
</charting:Chart>
...
</UserControl>
Как мне сделать, что второе связывание на ColumnSeries.DataPointStyle работать?
Я испробовал '{Binding RelativeSource = {RelativeSource FindAncestor, AncestorType = {x: Элементы управления: ChartView}}, Path = DataPointStyle}, но я все еще заканчиваю' System.Windows.Data Ошибка: 4: Не могу найти источник для привязки со ссылкой 'RelativeSource FindAncestor, AncestorType =' MyFramework.Controls.ChartView ', AncestorLevel =' 1 ''. BindingExpression: Path = DataPointStyle; DataItem = NULL; целевой элемент - «ColumnSeries» (Name = ''); target является «DataPointStyle» (тип «Стиль») ' – John