我需要此依赖项属性才能被读取操作访问。外部对象不应该能够为其分配值。我可以创建一个只读的依赖项属性吗?
1
A
回答
7
是的,当然(认为IsMouseOver
为什么只读依赖项属性应该存在)。 MSDN有关于这个问题的很好的文章。
实现只读依赖项属性时有一些问题,并且在某些情况下它们不起作用。但是,在某些情况下是可能的。对于这些情况,下面是一个简短的指南,以实现一个只读依赖项属性:
- 使用
RegisterReadOnly
,而不是Register
。 - 不要在您的包装属性中公开设置方法。
RegisterReadOnly
的返回值为DependencyPropertyKey
(而不是通常的DependencyProperty
)。存储但不公开此值。
链接的文章会给你必要的细节。
4
是的,你可以。
MSDN有整个部分描述如何定义和使用Read-Only Dependency Properties。
主要问题是致电DependencyProperty.RegisterReadOnly而不是注册。此外,如果您在对象上创建属性来处理此属性,请确保仅在属性中实现公共getter,而不是公共setter。
相关问题
- 1. 我可以创建一个简单的依赖属性来绑定Margin吗?
- 2. 如何创建只读依赖项属性?
- 3. 我可以在Dagger2中重新创建托管依赖项吗?
- 4. 如何创建一个只读的布尔依赖返回`另外两个依赖属性
- 5. 创建一个依赖项属性的代理
- 6. 在WinRT中创建只读依赖项属性的最佳方法是什么?
- 7. JAXB可以创建“只读”类属性吗?
- 8. 如何扩展此依赖项属性示例以重新创建DockPanel.Dock =“Top”类的依赖项属性?
- 9. 我可以避免显式调用RaisePropertyChanged的依赖属性吗?
- 10. 依赖属性依赖于另一个
- 11. WPF:如何使基类的依赖项属性为只读
- 12. 我可以使用Maven依赖项的路径作为属性吗?
- 13. 将每个控件的依赖项属性绑定到一个属性。可以做到吗?
- 14. 我可以在gemfile中强制创建一个gem的依赖关系吗?
- 15. 绑定依赖属性到另一个依赖属性
- 16. 我可以嘲笑我的控制器只有一个依赖项
- 17. Visual Studio:我可以使属性表的导入只读吗?
- 18. 当我创建依赖属性时,GetValue和SetValue方法是强制性的吗?
- 19. 如何在XAML WPF中创建强制性依赖项属性
- 20. 包装建造商可以依赖另一个建造者吗?
- 21. 如果一个属性依赖于两个属性的组合,那么这是一个函数依赖吗?
- 22. 我可以在一个只能由一个具体类访问的“set”结构中创建一个属性吗?
- 23. 容易依赖项属性
- 24. 使用依赖项属性
- 25. 清除依赖项属性
- 26. 组合依赖项属性
- 27. 依赖项属性继承
- 28. WPF依赖项属性MVVM
- 29. 如何创建绑定的依赖项属性
- 30. 创建包括属性和依赖关系的mvn项目
而你的编程语言是... – Zed 2009-08-24 17:02:45
如果c#,使setter私人。公共对象prop {get;私人设置;} – 2009-08-24 17:07:01
或只是省略设置:) – 2009-08-24 17:07:47