1

WindowsPhoneでカスタムコントロールを作成しようとしています。私のコントロールには、int型のValという名前の依存関係プロパティがあります。Valの値が変化した場合に備えてイベントを追加したいと思います。

私のコードは:

public int Val
        {
            get { return (int)GetValue(ValProperty); }
            set { SetValue(ValProperty,value); }
        }

    public static readonly DependencyProperty ValProperty = DependencyProperty.Register("Val", typeof(int), typeof(CT1), new PropertyMetadata(0, ValPropertyChanged));

    private static void ValPropertyChanged(DependencyObject target, DependencyPropertyChangedEventArgs e)
    {
        ((CT1)target).OnValChanged((int)e.OldValue,(int)e.NewValue);
    }

    protected virtual void OnValChanged(int oldvalue, int newvalue)
    {
        //TODO
    }

ここから先に進むのかわかりません。ヘルプが必要です。

4

1 に答える 1

1

了解しました。これが本来あるべき姿です。

protected virtual void OnValChanged(int oldvalue, int newvalue)
        {
            if (ValueChanged != null)
                ValueChanged(this, new ValueChangedEventArgs { OldValue = oldvalue, NewValue = newvalue });
        }


        public delegate void ValueChangedEventHandler(object sender, ValueChangedEventArgs e);

        public event ValueChangedEventHandler ValueChanged;
于 2012-05-09T06:18:03.433 に答える