1

この依存関係プロパティは、読み取り操作のみにアクセスできるようにする必要があります。外部オブジェクトはそれに値を割り当てることができません。

4

2 に答える 2

7

はい、もちろんです (読み取り専用の依存関係プロパティIsMouseOver存在する理由を考えてみてください)。MSDNには、この件に関する優れた記事があります。

読み取り専用の依存関係プロパティの実装には問題があり、場合によっては機能しません。ただし、場合によっては可能です。そのような場合のために、読み取り専用の依存関係プロパティを実装するための簡単なガイドを次に示します。

  1. RegisterReadOnlyの代わりに使用しRegisterます。
  2. ラップされたプロパティで public set メソッドを公開しないでください。
  3. からの戻り値は(通常の ではなく)RegisterReadOnly型です。この値を保存しますが、公開しません。DependencyPropertyKeyDependencyProperty

リンクされた記事は、必要な詳細を提供します。

于 2009-08-24T17:08:20.767 に答える
4

はい、できます。

MSDN には、 Read-Only Dependency Propertiesを定義して使用する方法を説明するセクション全体があります。

主な問題は、Register の代わりにDependencyProperty.RegisterReadOnlyを呼び出すことです。また、これを処理するためにオブジェクトにプロパティを作成する場合は、パブリック セッターではなく、パブリック ゲッターのみをプロパティに実装するようにしてください。

于 2009-08-24T17:07:28.727 に答える