問題の世界

DependencyProperty変更イベントを聞き、古い値を取得する | dependency-properties,wpf

Column クラスの VisiblePosition
プロパティのプロパティ変更イベントを購読するには、次のコードを使用します。

DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(ColumnBase.VisiblePositionProperty, typeof(Column));

if (dpd != null)
{
   dpd.AddValueChanged(col, ColumnVisiblePositionChangedHandler);
}

次に、 ColumnVisiblePositionChangedHandler
メソッドの定義を示します。

static internal void ColumnVisiblePositionChangedHandler(object sender, EventArgs e)

問題は、プロパティの古い値を取得する必要があることです。それ、どうやったら出来るの?

ありがとう、

ベストアンサー

残念ながら、プロパティ変更イベントハンドラをこのように登録すると、古い値の情報が取得されません。

1つの回避策は、プロパティ値をどこかに格納することです(これはあなたの古い値です)。それをイベントハンドラの現在の値と比較します。

もう1つの回避策は、独自の依存関係プロパティ(DP)を作成し、DPとコントロールのDP間のバインディングを作成することです。
WPFスタイルで通知を変更できます。


これに関する記事
があります。

Exit mobile version