与WPF中的Datacontext和ItemSource的区别

Pra*_*dda 5 c# wpf .net-3.5

重复:

为什么DataContext和ItemsSource不是多余的?


在WPF中,我们可以通过两种方式将项目列表分配给ComboBox

//CODE #1
//WPF
<ComboBox name="cmbItems" ItemSource={Binding} />

//C#
cmbItems.DataContext = someList;
Run Code Online (Sandbox Code Playgroud)

换句话说,直接分配itemsource

//CODE #2
//WPF
<ComboBox name="cmbItems" ItemSource={Binding} />
//C#
cmbItems. ItemSource = someList;
Run Code Online (Sandbox Code Playgroud)

两者都有用,但上面的片段有什么区别?哪个好用?

Ger*_*nck 9

DataContext主要用于表单,控件等.

ItemSource是在DataContext上进行数据绑定的相对路径.

例如,当您创建一个表单来编辑Person详细信息时,DataContext将是Person,并且表单上的不同控件将分别绑定在该对象上的单独属性上,例如Name,Birth of Date等.