2012-04-11 5 views
0

Итак, я пишу 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 работать?

ответ

0

У меня никогда не возникало таких проблем, но в качестве обходного пути вы можете попытаться использовать привязку с режимами RelativeSource и FindAncestor.

+0

Я испробовал '{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

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