我现在已经完成了几个 WPF 项目,并且看到了同样的问题,那就是聚合/组合依赖属性(dp)的“问题”。
例如,我有 10 个 bool 类型的 dp,我想将它们组合并作为单独的 dp 公开。组合的 dp 为真,除非它的一个或多个成分为假。
我目前使用 addValueChanged 来执行此操作,它为 10 个 (!() dp 中的每一个注册一个回调,但我想知道是否有更优雅的解决方案或者可能是解决这种常见情况的框架。我还没有使用 reactiveUI 和 mvvm light但我认为它在这里很有用。
var dpd = DependencyPropertyDescriptor.FromProperty(property,
owner.GetType());
dpd.AddValueChanged(owner,
handler);