から継承する単純なビューモデルがありますINotifyPropertyChanged
。このビュー モデルの自動テストをいくつか作成しようとした後、最終的に and をオーバーライドEquals()
しGetHashCode()
ました。私のテストは合格したので、私は幸せなキャンピングカーでした.
しかし、ビュー モデルのプロパティが変更されたときに、Windows フォームのデータ バインディングが反応しなくなりました。私のGetHashCode()
実装にコメントすると、私のテストを除いて、すべてが期待どおりに機能します。
これが私の実装です:
public override int GetHashCode()
{
unchecked
{
var hashCode = (_subject != null ? _subject.GetHashCode() : 0);
hashCode = (hashCode * 397) ^ (_message != null ? _message.GetHashCode() : 0);
hashCode = (hashCode * 397) ^
(_body != null ? _body.GetHashCode() : 0);
return hashCode;
}
}
これは、ReSharper が私のために生成したものです。
イベントを呼び出しているにもかかわらず、オーバーライドGetHashCode()
すると、データ バインディングがビュー モデルの変更を反映しなくなるのはなぜですか?PropertyChanged