WPF学习笔记 - 数据绑定(在代码中)

在程序代码里,有两种设置绑定的方法,一种是调用FrameworkElement或FrameContentElement对象的SetBinding实例方法。

例如:

Public MainWindow()

{

InitializeCompnet();

 

Binding binding = new Binding();

//设置源对象

binding.Source = treeview;

//设置源属性

binding.Path = new PropertyPath("SelectedItem.Header");

//设置目标属性

currentFolder.SetBinding(TextBlock.TextProperty, binding);

}

另一种是调用BindingOperations类的SetBingding静态方法。可以向这个静态方法传递与上面实例方法相同的对象,但是他的第一个参数表示目标对象。

例如:BindingOperations.SetBinding(currentFolder, TextBlock.TextProperty, binding);

静态方法的好处是,第一个参数是一个DependencyObject对象,他支持对那些不是从FrameworkElement或FrameContentElement对象继承而来的对象(如Freeable对象)进行数据绑定。

如果一个绑定在剩下的应用程序生命周期中已经没有用了,可以在任何时候通过BindingOperations.ClearBinding断开该绑定,要做的就是传入一个目标对象和它的依赖属性。例如:BindingOperations.ClearBinding(currentFolder, TextBlock.TextProperty);

BindingOperations.ClearAllBindings方法是移除所有的绑定。

例如:BindingOperations.ClearAllBindings(currentFolder);

另一种清除绑定的方法是直接为目标属性设置一个新的值。

例如:currentFolder.Text = "I am no longer receiving updates.";

需要注意的是,这仅是清除单向绑定。ClearBinding方法相对而言更加灵活,因为它仍然允许依赖属性以较低的优先级从源那里(如样式触发器、属性值继承等)获得值。

实际上ClearBinding内部调用的都是目标对象的ClearValue方法清除一个本地值。

 

http://blog.csdn.net/cs_oldhorse/article/details/6804567

posted @ 2015-03-06 11:13  天王星天  阅读(398)  评论(0编辑  收藏  举报