2010-07-22 1 views
3

У меня возникла проблема с привязкой к свойству Rect RectangleGeometry. Основная идея здесь заключается в том, что я пытаюсь связать маску клипа для управления визуализированной высотой объекта псевдографики. Вот XAML:Binding 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. Конечно, он не изменит размер при изменении показателя.

Теперь, если я помещаю точку останова в 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; 
    } 
    ... 

Когда приложение запущено, оно просто не показывает клип. Как я уже сказал, я поставил точку останова в конвертере и проверил, что он вызван, и возвращается объект с правильным размером ... но он просто не отображается в представлении.

Любые идеи?

Спасибо, Paul

ответ

2

Ваш преобразователь возвращает RectangleGeometry, который вы затем пытаетесь присвоить свойство Rect типа Rect на RectangleGeometry. Избавьтесь от «выходного» объекта в конвертере и просто верните сам Rect.

+0

Спасибо, Джон. Пятно на. –

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