Свойство зависимости зависит от другого
Как можно зарегистрировать свойство зависимости, значение которого рассчитывается с использованием значения другого свойства зависимости?
Поскольку обертки свойств .NET обойдены WPF во время выполнения, не следует включать логику в методы получения и установки. Решение этого, как правило, заключается в использовании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));
Пока зависимость не является круговой, есть ли надлежащие средства для достижения этой цели?