一直以来数据绑定都习惯通过FrameworkElement的SetBinding方法设置绑定,而就在前两天的项目开发中想实现两个继承自DependencyObject的Model之间通过数据绑定建立关系,于是习惯性的期望在VS中通过model.SetBinding设置绑定,结果可想而知,在智能提示中没有找到预想的SetBinding方法,一时之间愣住了。之后仔细想想,既然是数据绑定就应该适用于任何DependencyObject,而不仅仅是控件,想到就做,使用Reflector反射查看FrameworkElement的SetBinding方法实现,终于显现出它的原形:
public BindingExpressionBase SetBinding(DependencyProperty dp, BindingBase binding) { return BindingOperations.SetBinding(this, dp, binding); }
BindingOperations.SetBinding正是我们需要的。
谨以此记录成长的脚步,同时和大家一起分享快乐。