【发布时间】:2010-03-15 16:39:06
【问题描述】:
我的代码目前如下所示:
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 中绑定的旧系统。
解决这个问题的最佳方法是什么?
【问题讨论】:
标签: c# data-binding xaml dependency-properties