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