令人十分困惑的问题,所有的方法都试过[DataGrid列标题本地化]
可能大家都觉得很简单的问题,但是解决起来很困难。
我想用一个产品类别的下拉列表来解决产品的输入问题。产品分类是一个表,产品是一个表,二者用关系关联起来,主要是想解决层次化修改的问题。
我是用自动绑定的办法,所有的功能都已实现。回头突然发现,原来认为这个问题应该很简单,但是解决起来十分头痛。我也用了不少的办法:
//方法一
this.objdsClassAndProduct.Tables[1].Columns[0].Caption="中文列名";
这个办法是想从数据源入手,但是可以正确设置,也可以跟踪正确的结果,但是网格的列标题无变化。
//跟踪
this.label1.Text=this.objdsClassAndProduct.Tables[1].Columns[0].Caption;
//方法二
this.grdproduct.TableStyles[0].GridColumnStyles[0].HeaderText="中文列名";
//或者:
this.grdproduct.TableStyles["TableName"].GridColumnStyles["classID"].HeaderText="中文列名";
这个办法想直接从网格对象入手,但是用第一个办法,将会出现数组越界的报错信息。如果下第二个语句,将产生“无法导入XML架构,已有classID(分类号)存在”的问题。
我试着修改XSD的XML文件,如果在那里加上caption,不会有显示。其它的也试着修改了,但是没有效果,要么报错。
我也打开了自动产生的数据集对象的代码文件,这个文件一般看不到,在临时程序集里,也试着在对象初始化的时候设置,但是依然没有效果。
我也搜索了CSDN所有类似的贴子,包括用"select classID as 产品分类号...."等办法,但是依然无用,他会在网格后面产生一个新的列,原来的没有变化,并且也无法自动关联。
只有一个办法肯定能够解决,就是手动添加网络的TableStyles和列样式,但是我所有的功能都实现了,就是这个问题令人心烦。
但是有一点我敢肯定,就是这个列对象一定可以动态访问并设置,但是如何动态访问和设置,望大家指点。
如何动态访问和设置?
如何动态访问和设置?