須要事先說明的是:該方案採用了反射技術,效率方面可能存在一些問題,若是數據量太大,建議分頁顯示。
這裏,筆者定義了兩個私有變量,分別用於保存每行同樣和每行不同的數據:
1
private
Dictionary<
int,
IList> _ComboBoxDataContexts =
new
Dictionary<
int,
IList>();
2
private
Dictionary<
int,
Dictionary<
int,
IList>> _ComboBoxDataContextDictionaries =
new
Dictionary<
int,
Dictionary<
int,
IList>>();
在客戶端程序的代碼中,咱們就能夠在任何地方爲每行賦值同樣或者不同的可選項了。
1
for (
int i = 0; i < 6; i++)
2 {
3
this.grdDataGrid.SetComboBoxDataContext(1, i, loader.GetTestData());
4 }
5
6
for (
int i = 6; i < 12; i++)
7 {
8
this.grdDataGrid.SetComboBoxDataContext(1, i, loader.GetTestData2());
9 }
這樣處理以後,咱們就能夠再像處理CheckBox那樣,使用this.Dispatcher.Invoke爲每行賦值了。