2009-04-29 19 views
5

重複的:差異速滑運動員的肌肉的datacontext和的ItemSource在WPF

Why are DataContext and ItemsSource not redundant?


在WPF中我們可以通過兩種方式

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

//C# 
cmbItems.DataContext = someList; 

另一種方式分配項目的列表,組合框,直接分配itemsource

//CODE #2 
//WPF 
<ComboBox name="cmbItems" ItemSource={Binding} /> 
//C# 
cmbItems. ItemSource = someList; 

這兩個服務的目的,但最新的片段有什麼區別?哪個很好用?

+0

可能的重複[誰有最好的答案爲什麼DataContext和ItemsSource不是多餘的?](http://stackoverflow.com/questions/793340/who-has-the-best-answer-for-why-的datacontext和 - 的ItemsSource-是-不冗餘) – 2011-09-27 16:47:40

回答

9

DataContext的大部分上的形式使用的,對照等

一個的ItemSource是做對即DataContext的數據綁定的相對路徑。

例如,當您編輯表單以編輯人員詳細信息時,DataContext將爲Person,並且表單上的不同控件將分別綁定到該對象上的單獨屬性,例如Name,Birth of Date等。

2

在第二個示例中,您可以省略ItemsSource = {Binding} ..您正在將ItemsSource直接設置爲代碼後面的值..您不需要在此綁定。在你的第一個例子,你設置的DataContext,並從DataContext的再次使用綁定來檢索它..

但它其實並不重要。對於這兩種方法很好地工作......

我用下面的規則大拇指:將其設置在代碼後面,如果我有可用的集合。將其設置爲某種綁定模式,如果我需要轉換集合,以便我可以使用IValueConverter來完成這項工作。

相關問題