Возвращаемое значение свойства зависимости WPF - PullRequest
1 голос
/ 20 июля 2009

Я довольно новичок в WPF.

Предположим, я определил свойство зависимости int. Цель DP - вернуть значение + 1 (см. Код). В .Net 2.0 я бы написал:

private int _myValue = 0;
    public int MyValue
    {
        get { return _myValue + 1; }
        set { _myValue = value; }
    }

Как бы вы объявили DP, который выполняет подобное поведение?


Предложенное Принуждение работает только для операции Set. Я хотел бы изменить результат получения.

1 Ответ

5 голосов
/ 20 июля 2009

Вы бы достигли этого косвенно так:

public static readonly DependencyProperty ValueProperty =
    DependencyProperty.Register("Value", typeof(int), typeof(OwnerClass),
        new FrameworkPropertyMetadata(0, null, new CoerceValueCallback(CoerceValue)));

public int Value
{
    get { return (int)GetValue(ValueProperty); }
    set { SetValue(ValueProperty, value); }
}

private static object CoerceValue(DependencyObject d, object value)
{
    return (int) value + 1;
}

Проверьте эту ссылку для объяснения принуждения.

...