2010-07-22 126 views
3

我遇到了試圖綁定到RectangleGeometry的Rect屬性的問題。這裏的基本思想是,我試圖綁定剪輯蒙板來控制虛擬圖表對象的可視化高度。這裏是XAML:綁定RectangleGeometry.Rect不顯示矩形

<Path x:Name="_value" Fill="{DynamicResource PositiveColorBrush}" Data="F1 M10,55 C10,57.75 7.75,60 5,60 2.25,60 0,57.75 0,55 L0,5 C0,2.25 2.25,0 5,0 7.75,0 10,2.25 10,5 L10,55 z"> 
    <Path.Clip> 
     <!-- SECOND NUMBER CONTROLS THE HEIGHT : SCALE OF 0-60 REVERSED --> 
     <!--<RectangleGeometry Rect="0,22.82,10,60"/>--> 
     <RectangleGeometry 
      Rect="{Binding Score, Converter={StaticResource ChartBarScoreConverter}}" /> 
    </Path.Clip> 
    </Path> 

請注意評論RectangleGeometry那裏。當我取消註釋並註釋掉綁定的RectangleGeometry時,這非常有效。當然,當Score改變時它不會改變大小。

現在,如果我在ChartBarScoreConverter中放置一個斷點,我會得到正確的值並返回一個新的RectangleGeometry對象,它的註釋與那個註釋完全相同。這裏是轉換器的短代碼:

... 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
    RectangleGeometry output = new RectangleGeometry(); 
    double score = 60; //0 
    if (Common.IsNumeric(value)) 
    { 
     score = System.Convert.ToDouble(value) * .60;//scale is 0-60 
     score = 60 - score;//reversed (= 
    } 
    output.Rect = new Rect(0, score, 10, 60); 
    return output; 
    } 
    ... 

當應用程序運行時,它根本不顯示剪輯。正如我所說的,我在轉換器中放置了一個斷點,並且已經確認它已被調用,並且返回了正確大小的對象......但它並未出現在視圖中。

任何想法?

感謝, 保羅

回答

2

你的轉換器返回RectangleGeometry你正在嘗試,然後分配給類型矩形的上RectangleGeometry rect屬性。擺脫轉換器中的「輸出」對象並返回Rect本身。

+0

謝謝,約翰。發現。 – 2010-07-22 03:08:28