如何注册一个依赖属性,其值是使用另一个依赖属性的值计算的?
因为 .NET 属性包装器在运行时被 WPF 绕过,所以不应在 getter 和 setter 中包含逻辑。解决方案通常是使用PropertyChangedCallback
s. 但是那些被声明为静态的。
例如,完成这个人为任务的正确方法是什么:
public bool TestBool
{
get { return (bool)GetValue(TestBoolProperty); }
set
{
SetValue(TestBoolProperty, value);
TestDouble = ((value)?(100.0):(200.0)); // HERE IS THE DEPENDENCY
}
}
public static readonly DependencyProperty TestBoolProperty =
DependencyProperty.Register("TestBool", typeof(bool), typeof(ViewModel));
public double TestDouble
{
get { return ((double)GetValue(TestDoubleProperty)); }
set { SetValue(TestDoubleProperty, value); }
}
public static readonly DependencyProperty TestDoubleProperty =
DependencyProperty.Register("TestDouble", typeof(double), typeof(ViewModel));
只要依赖不是循环的,是否有适当的方法来实现这一点?