须要事先说明的是:该方案采用了反射技术,效率方面可能存在一些问题,若是数据量太大,建议分页显示。
这里,笔者定义了两个私有变量,分别用于保存每行同样和每行不同的数据:
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为每行赋值了。