此段为原文翻译而来,原文地址
WPF 中 数据绑定 ItemSource和 DataContext的不同点:
1.DataContext 一般是一个非集合性质的对象,而ItemSource 更期望数据源是 集合对象。
2.DataContext 是 FrameworkElement 类中定义的一个依赖属性(Dependency property),ItemsSource是 在ItemsControl 类中定义的。所有继承自FrameworkElement 的类(控件)都可以使用DataContext属性并给其赋值,但我们只能给ItemsSource赋值为集合对象
3.DataContext不能产生模板,它只能用来筛选出数据,供其它控件来绑定。而ItemsSource主要作用就是给模板提供数据。
4.DataContext主要用来抓取一些子元素需要使用的数据,以保证子元素能够顺利的使用数据。ItemsSource不会用来分享数据,它只是对定义好的元素有效。
第四点的实在不知道如何翻译。最后附上原文。
In this post I will try to illustrate the difference between DataContext and ItemsSource property in Silverlight/WPF. These two properties don't serve the same purpose.
- DataContext expects an object type where ItemsSource expects IEnumerable type objects.
- DataContext is a dependency property is exposed by FrameworkElement base class,where as ItemsSource is defined b