需要事先说明的是:该方案采用了反射技术,效率方面可能存在一些问题,如果数据量太大,建议分页显示。
这里,笔者定义了两个私有变量,分别用于保存每行一样和每行不一样的数据:
在客户端程序的代码中,我们就可以在任何地方为每行赋值一样或者不一样的可选项了。
这样处理之后,我们就可以再像处理CheckBox那样,使用this.Dispatcher.Invoke为每行赋值了。
这里,笔者定义了两个私有变量,分别用于保存每行一样和每行不一样的数据:
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 }
本文转自 Eallies 51CTO博客,原文链接:http://blog.51cto.com/eallies/78985,如需转载请自行联系原作者