2012-04-11 4 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')

は、だから私はどのようにチャートとの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にバインディングが動作することを確認しますか?

答えて

0

このような問題は一度も発生しませんでしたが、回避策としてRelativeSourceFindAncestorモードでバインドを試行できます。

+0

私は '{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

関連する問題