0

インスタンスの各プロパティにハンドラーをアタッチするために propertyDescriptor を使用しています。これらのプロパティのいずれかが変更されると、1 つのケース (ここに問題があります) を除いてハンドラー メソッドが呼び出されます。値が文字列で、この文字列が空であるか空白のみを含む場合です。

[保存] ボタンのIsEnabledプロパティを更新するには、このケースを実行する必要があります。

foreach (PropertyDescriptor propertyDescriptor in TypeDescriptor.GetProperties(this.MyInstance))
{
    propertyDescriptor.RemoveValueChanged(this.MyInstance, this.MyMethod);
}

たとえば、ユーザーの名を編集して名前を削除する場合、保存ボタンを無効にする必要があります。

4

1 に答える 1

0

新しい行動を見つけました。

すべてのプロパティは、WPF アプリケーションのバインディングで使用されます。MyMethod は、UpdateSourceTrigger プロパティが LostFocus に設定されている場合にのみ呼び出されます。PropertyChanged 値では、そうではありません。一部のプロパティでは、PropertyChanged 値を使用する必要があります。たとえば、動的 ValidationRules の場合です。

于 2013-02-04T13:17:31.557 に答える