2009-08-24 12 views
1

この依存関係プロパティは、読み取り操作でのみアクセスできる必要があります。外側のオブジェクトは値を割り当てることができません。読み取り専用の依存関係プロパティを作成できますか?

+0

あなたのプログラミング言語は... – Zed

+0

c#の場合、セッターをプライベートにしてください。パブリックオブジェクトprop {get;プライベートセット;} –

+0

または単にセットを省略する: –

答えて

7

はい、もちろんです(理由はIsMouseOverで、なぜ読み取り専用の依存関係のプロパティであるべきだと思います)。 MSDNには素晴らしい記事があります。

読み取り専用の依存関係プロパティを実装する際にいくつか問題があり、場合によっては機能しない場合もあります。ただし、場合によっては可能です。これらの例については、次のように読み取り専用の依存関係プロパティを実装する簡単なガイドです:

  1. 利用RegisterReadOnlyの代わりRegister
  2. ラップされたプロパティに公開セットメソッドを公開しないでください。
  3. RegisterReadOnlyの戻り値は、(通常はDependencyPropertyではなく)です。保存しますが、この値は公開しないでください。

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

4

はい、できます。

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

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

関連する問題