2009-08-24 63 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)。存储但不公开此值。

链接的文章会给你必要的细节。

相关问题