Мой код в настоящее время выглядит так:
private Foo myFoo;
public Foo CurrentFoo
{
get { return myFoo; }
set { SetFoo(value); }
}
private void SetFoo(Foo newFoo)
{
// Do stuff
// Here be dragons
myFoo = newFoo;
}
Чтобы иметь возможность связать его в XAML / WPF, мне нужно превратить Foo
в свойство зависимости:
public static DependencyProperty CurrentFooProperty =
DependencyProperty.Register("CurrentFoo", typeof(Foo),
typeof(FooHandler), new PropertyMetadata(false));
public Foo CurrentFoo
{
get { return (Foo)GetValue(CurrentFooProperty); }
set { SetValue(CurrentFooProperty, value); }
}
Я слышал, что вы не должны делать магию внутри фактического набора свойств C # {}, так как он может не вызываться, но значение записывается непосредственно в свойство зависимостей. Если это неверно, дайте мне знать, это кажется самым очевидным и простым путем.
Я знаю, что могу добавить функцию проверки к свойству зависимости, но я предполагаю, что ее не следует использовать для этого? Мне нужно сообщить об изменении в унаследованные системы, которые еще не могут быть связаны в XAML.
Как лучше всего подойти к этой проблеме?