我有一个含有DependencyProperty的DependencyObject:
public class DependencyObjectClass: DependencyObject
{
public static DependencyProperty BooleanValueProperty = DependencyProperty.Register("BooleanValue", typeof (bool), typeof (DependencyObjectClass));
public bool BooleanValue
{
get { return (bool)GetValue(BooleanValueProperty); }
set { SetValue(BooleanValueProperty, value); }
}
}
我还有我的数据源类:
public class DataSource: INotifyPropertyChanged
{
private bool _istrue;
public bool IsTrue
{
get { return _istrue; }
set
{
_istrue = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("IsTrue"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
我尝试使用以下代码将上述两个对象进行绑定:
var dependencyObject = new DependencyObjectClass();
var dataSource = new DataSource();
var binding = new Binding("IsTrue");
binding.Source = dataSource;
binding.Mode = BindingMode.TwoWay;
BindingOperations.SetBinding(dependencyObject, DependencyObjectClass.BooleanValueProperty, binding);
每当我改变 DependencyObjectClass 上的 BooleanValue 属性时,DataSource 会做出反应,但反过来(改变 DataSource 上的 IsTrue 属性对 DependencyObjectClass 没有影响)。
我做错了什么?我必须手动处理 OnPropertyChanged 事件吗?如果是的话,那就有点令人失望,因为我原本希望这个可以自动完成。