【问题标题】:Why are so many DependencyProperties public in wpf? [closed]为什么 wpf 中有这么多 DependencyProperties 是公开的? [关闭]
【发布时间】:2013-09-09 13:42:11
【问题描述】:

在 WPF 中有许多 DependencyProperties 及其 CLR setter 和 getter 标记为公共。这很糟糕,因为任何人都可以设置他们的价值。我想知道如何创建一个只能从类内部设置的私有 RenderTransform 属性?

【问题讨论】:

  • 它们是公开的,因为它们必须通过 XAML 设置(其中可设置的属性必须是公开的)。也就是说......这不是什么坏事(拥有一个没有人可以改变的财产是什么意思?!)最后......你认为你可以用私人依赖财产做什么?
  • @Adriano 我有一个工作用例,其中包含在用户控件中使用的私有依赖属性stackoverflow.com/questions/18332633/…
  • @Adriano 只读依赖属性在您想将某些状态传达给样式触发器时很有用。
  • @Adriano 最后一句话描述了我想要实现的目标:安全。
  • @Adriano,确保没有必要将它们设为私有,但由于定义在用户控件中显示哪个 UI 编辑器的属性仅在控件内部使用,我不想公开对外界的属性。

标签: c# wpf dependency-properties


【解决方案1】:

您的结论是错误的:公开的依赖属性意味着“任何人都可以设置它的值”。

如果你想要一个只能从类内部设置的依赖属性,通常的模式是创建一个 private 依赖属性 key 和一个 public 依赖属性。在这个问题中可以找到一个详细的例子:

【讨论】:

  • "任何人都可以设置它的值"如果 CLR 设置器是公共的。
猜你喜欢
  • 1970-01-01
  • 2014-11-06
  • 2023-03-07
  • 2013-09-17
  • 2011-02-17
  • 2013-09-23
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
相关资源
最近更新 更多