質問

私はこれを知っているべきだと思われ、私はそうしたと思いました。私はベースビューモデルクラスを持っています。その中にはいくつかのプロパティがありますが、それらはすべて自動ゲッターとセッターを利用しているので、もちろんそれらはすべて正常に動作しますが、イベントをブロードキャストする必要があるものがあります(私はプリズムを使用しています)。このような。

protected bool isValid;
public bool IsValid
{
  get { return isValid; }
  set
  {
    isValid = true;
    this.EventAggregator.GetEvent<ViewModelValidEvent>().Publish(isValid);
  }
}

私が得る問題は、それから派生したクラスにisValidを割り当てようとするときです - コンパイラエラーは、それが読み取られているだけだと言っています...

さらに - 私は、raisepropertychangedなどを呼び出すためにセッターを必要とするときに、これらの私的変数をすべてのために宣言しなければなりません...これを行うためのより良い方法はありますか?

誰かが私を正しい方向に向けることができますか?ありがとう!!!

役に立ちましたか?

解決

あなたが使用しようとしているのではないかと思います isValid (コンパイラによって)派生クラスのインスタンスまたは派生クラスのサブクラスであることがわかっていないオブジェクト。 protected そのような比較的微妙なセマンティクスがあります。

個人的には、あなたのフィールドを非公開に保ち、他のクラス(派生クラス)のプロパティを使用することをお勧めします。

プロパティを実装するより簡単な方法については、実際にはありません。ラッパータイプを持つこともできますが、ラッパータイプのインスタンスを保持するために変数を作成し、get/setアクセサを変数にプロキシにする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top