WPF Bind设置了Source还需要对绑定控件的Content进行设置吗?
控件绑定一般是:textBlock.Content=person;BIndingbinding=newbinding("PersonName");textBlock.Se...
控件绑定一般是:
textBlock.Content = person;
BInding binding = new binding("PersonName");
textBlock.SetValue(TextBlock.BindingProperty, binding);
但在Binding中还有一个Source.这个Source是干什么用的呢?
如果是资源的话,是不是不用设置Content了?比如:
BInding binding = new binding("PersonName");
binding.Source = person;
textBlock.SetValue(TextBlock.BindingProperty, binding); 展开
textBlock.Content = person;
BInding binding = new binding("PersonName");
textBlock.SetValue(TextBlock.BindingProperty, binding);
但在Binding中还有一个Source.这个Source是干什么用的呢?
如果是资源的话,是不是不用设置Content了?比如:
BInding binding = new binding("PersonName");
binding.Source = person;
textBlock.SetValue(TextBlock.BindingProperty, binding); 展开
2个回答
2014-02-17 · 知道合伙人数码行家
关注
展开全部
Binding binding = new Binding("PersonName");
binding.Source = person;
txtBlock.SetBinding(TextBlock.TextProperty, binding);
首先TextBlock没有Content属性,有Text属性。
Source是绑定对象中的一个参数,这个参数不一定要设置,需要看如何进行数据绑定。
然而设置绑定使用针对TextBlock的某一依赖属性的,这里应该是TextProPerty吧。
关于数据绑定,可以参考下博文:http://blog.csdn.net/rabbitsoft_1987/article/details/19297073
追问
是DataContext.
1直接将一个对象绑定至控件的DataContext,之后通过Binding指定依赖属性绑定的字段(SetBinding).
2将一个对象传给Binding的Source.之后通过Binding指定依赖属性绑定的字段(SetBinding).
以上两种区别就是数据源关联的方法: 一种是DataContext,一种是Binding的Source.
这两种等效吗?
追答
效果是一样的,是两种绑定的模式,可以看下上面的博文
Binding bd=new Binding();
bd.Path=new PropertyPath("id");
bd.Source=parent;
txtBlock1.SetBinding(TextBlock.TextProperty, bd);
bd = new Binding();
bd.Path = new PropertyPath("id");
txtBlock2.SetBinding(TextBlock.TextProperty, bd);
txtBlock2.DataContext = parent;
展开全部
Binding 的源(source)也就是数据的源头。Binding对源的要求并不苛刻------只要它是一个对象,并且通过属性(Property)公开自己的数据,它就能作为Binding 的源。
如果想让作为Binding源的对象具有自动通知Binding自己属性值已经已经变化的能力。那么就需要让类实现INotifyChanged接口并在属性的Set语句中激发PropertyChanged事件。在日常生活中,除了使用这种对象作为数据源之外,我们还有更多的选择,比如控件把自己的容器或子集元素当源、用一个控件做为另一个控件的数据源,把集合作为ItemControl的数据源、使用XML作为TreeView或Menu的数据源。把多个控件关联到一个“数据制高点”上,甚至干脆不给Binding指定数据源、让他自己去找。
如果想让作为Binding源的对象具有自动通知Binding自己属性值已经已经变化的能力。那么就需要让类实现INotifyChanged接口并在属性的Set语句中激发PropertyChanged事件。在日常生活中,除了使用这种对象作为数据源之外,我们还有更多的选择,比如控件把自己的容器或子集元素当源、用一个控件做为另一个控件的数据源,把集合作为ItemControl的数据源、使用XML作为TreeView或Menu的数据源。把多个控件关联到一个“数据制高点”上,甚至干脆不给Binding指定数据源、让他自己去找。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询