2009-08-24 171 views
1

我需要此依賴項屬性才能被讀取操作訪問。外部對象不應該能夠爲其分配值。我可以創建一個只讀的依賴項屬性嗎?

+0

而你的編程語言是... – Zed 2009-08-24 17:02:45

+0

如果c#,使setter私人。公共對象prop {get;私人設置;} – 2009-08-24 17:07:01

+0

或只是省略設置:) – 2009-08-24 17:07:47

回答

7

是的,當然(認爲IsMouseOver爲什麼只讀依賴項屬性應該存在)。 MSDN有關於這個問題的很好的文章。

實現只讀依賴項屬性時有一些問題,並且在某些情況下它們不起作用。但是,在某些情況下是可能的。對於這些情況,下面是一個簡短的指南,以實現一個只讀依賴項屬性:

  1. 使用RegisterReadOnly,而不是Register
  2. 不要在您的包裝屬性中公開設置方法。
  3. RegisterReadOnly的返回值爲DependencyPropertyKey(而不是通常的DependencyProperty)。存儲但不公開此值。

鏈接的文章會給你必要的細節。

相關問題