2

私はWPFにかなり慣れていません。

int 依存関係プロパティを定義したとします。DP の目的は、値 + 1 を返すことです (コードを参照)。.Net 2.0 では、次のように記述します。

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

同様の動作を実現する DP をどのように宣言しますか?


提供された強制は、セット操作に対してのみ機能します。Get結果を変更したいと思います。

4

1 に答える 1

6

次のように間接的に達成します。

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;
}

強制の説明については、このリンクを確認してください。

于 2009-07-20T12:40:50.980 に答える