だから私はいくつかの他のコントロールのコンポジットである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')
は、だから私はどのようにチャートとのColumnSeriesコントロールの動作といくつかの奇妙なXAMLスコープのものがあると思うエラーが発生します。それは2010年2月のWPFツールキットからのChartコントロールです。もし最新のものがあれば、私はとにかく使っていなければなりません。そこで、基本的
:
<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>
は、どのように私は2番目のColumnSeries.DataPointStyleにバインディングが動作することを確認しますか?
私は '{RelativeSource FindAncestor、AncestorType = {x:Typeコントロール:ChartView}}、Path = DataPointStyle}を試みましたが、' System.Windows.Data Error:4:Can not find 'RelativeSource FindAncestor、AncestorType =' MyFramework.Controls.ChartView '、AncestorLevel =' 1 ''でバインドするためのソース。 BindingExpression:Path = DataPointStyle; DataItem = null;ターゲット要素は 'ColumnSeries'(Name = '')です。ターゲットプロパティは 'DataPointStyle'(型 'スタイル')です。 – John