Привязка не обновляется в DefiningGeometry - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть два DP, которые я обновляю в DefiningGeometry get:

protected override Geometry DefiningGeometry
{
    get
    {
        StartSc = sc.Transform(Start);
        EndSc = sc.Transform(End);
        //Start and End are also dependencies properties.    
    ...
    }
}

Я связываюсь с StartSc и EndSc, но цель никогда не обновляется, она всегда сохраняет значение по умолчанию 0. Start иКонец изменений, так что это не проблема, мне интересно, если присваивание в DefiningGeometry не влияет на свойства.Кто-нибудь видит какую-либо очевидную ошибку?

Примечание: У меня были те же имена переменных, которые скрывали DP от производного класса, удаление скрытия кода выше сработало, но приведенный ниже ответ работаетв любом случае.

1 Ответ

1 голос
/ 02 февраля 2012

Если вы связываетесь с DP и вы используете код элемента управления, который хотите использовать SetCurrentValue (не CLR-оболочки (StartSc & EndSc), которые используют SetValue) , потому что в противном случае вы перезаписываете существующие привязки конкретным значением.

Также, как я уже сказал, избегайте делать что-то в геттерах, очень трудно сказать, когда и как часто им звонят.

...