2011-12-11 103 views
0

我試圖用Petzold的LineChartGenerator(從http://msdn.microsoft.com/en-us/magazine/ee291567.aspx):綁定一個靜態資源,其作爲一個靜態資源訪問的FrameworkElement的財產

<Window.Resources> 
    <src:CensusData x:Key="censusData" /> 
    <charts:LineChartGenerator 
      x:Key="generator" 
      ItemsSource="{Binding Source={StaticResource censusData}}" 
      Width="300" 
      Height="200"> 
     </charts:LineChartGenerator.VerticalAxis> 
    </charts:LineChartGenerator> 
</Window.Resources> 

,但我想的寬度和高度,以當前綁定控件的寬度和高度。如果不是這個是:

<charts:LineChartGenerator 
      x:Key="generator" 
      ItemsSource="{Binding Source={StaticResource censusData}}" 
      Width="{Binding ElementName=MyControl, Path=Width}" 
      Height="200"> 

但是這給了我一個綁定錯誤:無法找到目標元素理事FrameworkElement的或FrameworkContentElement上。 BindingExpression:路徑=寬度;的DataItem = NULL;目標元素是'LineChartGenerator'(HashCode = 52313994);目標屬性是'寬度'(類型'Double')

是否可以這樣做?我有各種各樣的kludges,但他們都將teh控件的寬度設置爲LineChartGenerator的寬度,這實際上不是所需的效果!

感謝

安德魯

回答

1

我相信,因爲你width屬性是在Window.Resources標籤寬度結合應該是這個樣子......

Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
    AncestorType={x:Type Window}}, Path=ActualWidth}" 
+0

不錯的嘗試,保羅,但這給出了相同的綁定錯誤 – amaca