在我的Windows Mobile .NET应用程序中,我有一个简单的对象数组,其中包含我想要在DataGrid中显示的数据。为此,我只需致电:
myDataGrid.DataSource = myArray;
这有效,但我遇到了问题:它使用所有属性作为列,并使用属性的名称作为列标题。我无法弄清楚如何自定义两件事:
选择应将哪个属性子集显示为列(例如,我有ID,名称和值属性,我只想显示名称和值);
重命名列标题以使其更有意义(例如,如果属性名为ID,则显示列标题为“Number”)。
这有可能吗?
如上所述,这是在Windows Mobile .NET(版本2)应用程序中。
答案 0 :(得分:1)
您需要设置Datagrid.TableStyles属性以自定义布局。
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid.tablestyles.aspx
有关绑定到对象数组的更多详细信息: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridtablestyle.mappingname(VS.71).aspx
绑定 System.Windows.Forms.DataGrid到 强类型的对象数组, 对象必须包含公共属性。 创建一个DataGridTableStyle 显示这样的数组,设置 MappingName属性为classname [] 其中classname被替换为 班级名称。还要注意 MappingName属性是 区分大小写的。
答案 1 :(得分:0)
我不知道您是否事先知道了列的名称?但如果是这种情况,您可以进入DataGridView的“编辑列”,然后在那里创建列。在“数据”类别中,将“DataPropertyName”从“(none)”更改为类属性的名称。从那里你可以自定义名称,如果它是可见的,大小等.DataGrid将它绑定到你的DataSource。
此外,还有一个属性“DataGridView.AutoGenerateColumns”可以设置为false,因此您不必绑定对象的所有属性。我也帮了那个帮忙。
答案 2 :(得分:0)
在这段代码中,_im是表的一个对象,我在绑定后用DataGridView dgvItem绑定了这个对象,我根据需要更改了dgvItem的头文本。
dgvItem.Rows.Clear();
dgvItem.DataSource = _im ;
dgvItem.Columns[2].HeaderText = "Mobile Code";
dgvItem.Columns[3].HeaderText = "Mobile Name";