【发布时间】:2013-09-19 12:42:51
【问题描述】:
我知道可以使用反射来访问给定类的所有依赖项属性。但是是否可以使用反射或其他一些通用技术将所有依赖项属性设置回属性注册时给出的默认值?
示例 dp:
public static readonly DependencyProperty IdProperty = DependencyProperty.Register("Id", typeof(int?), typeof(OwnerClass), new PropertyMetadata(0));
public int? Id { get { return (int?)GetValue(IdProperty); } }
我可以遍历任何给定类中的所有此类 dps 并将它们设置回原始 PropertyMetadata 对象给定的值吗?
我的目的是尝试在一个抽象基类中为 wpf 应用程序中的所有视图模型创建一个“Clear()”方法。我想给 Clear() 默认行为,将所有可能注册的 dps 设置回注册时给出的默认值。用户可以在需要时/如果需要覆盖此行为。
【问题讨论】:
-
请清楚地解释您这样做是为了达到什么目的...可能会有更好的方法。
-
是的,你可以做到。虽然没有足够的信息。基本上是传递一个实例,找到属性,找到默认值,然后使用默认值调用属性的设置器。请告诉我你不想从吸气剂那里做那件事。
-
我的目的是尝试在一个抽象基类中为 wpf 应用程序中的所有视图模型创建一个“Clear()”方法。我想给 Clear() 默认行为,将所有可能注册的 dps 设置回注册时给出的默认值。用户可以在需要时/如果需要覆盖此行为。
-
您使用依赖属性而不是 INPC 的任何原因?
-
这听起来可能是绿色的,但没有任何理由,除了 dp 是我在处理 wpf 时所接触到的。
标签: c# wpf dependency-properties