Windows Mobile 应用程序中 DataGrid 的列宽
Posted
技术标签:
【中文标题】Windows Mobile 应用程序中 DataGrid 的列宽【英文标题】:Column width of a DataGrid in a Windows Mobile Application 【发布时间】:2010-11-06 07:20:27 【问题描述】:我在尝试调整数据网格列的宽度时遇到问题。我使用了here发布的答案,但我无法解决。
我使用对象列表作为数据源。在这个简单的示例中,我刚刚创建了一个智能设备应用程序,并添加了一个数据网格。那么我的代码就是这个:
public Form1()
InitializeComponent();
List<Prueba> lista = new List<Prueba>();
lista.Add(new Prueba("uno", "dos"));
lista.Add(new Prueba("tres", "cuatro"));
dataGrid1.DataSource = lista;
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = lista.GetType().ToString();
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 4000;
tbcName.MappingName = "UNO";
tbcName.HeaderText = "UNO";
tableStyle.GridColumnStyles.Add(tbcName);
dataGrid1.TableStyles.Clear();
dataGrid1.TableStyles.Add(tableStyle);
public class Prueba
public string UNO get; set;
public string DOS get; set;
public Prueba(string uno, string dos)
this.UNO = uno;
this.DOS = dos;
宽度保持不变。你有线索吗?谢谢!
【问题讨论】:
【参考方案1】:改变这一行
tableStyle.MappingName = lista.GetType().ToString();
到
tableStyle.MappingName = lista.GetType().Name;
哦,4000 对于手机来说有点大,但我认为这是一个错字。
【讨论】:
啊,谢谢!是的,它工作得很好。是的,4000 只是一个基于绝望的值:P【参考方案2】:对于使用 DataTable 而不是列表作为数据源的任何人,您似乎必须进行更改:
tableStyle.MappingName = lista.GetType().Name;
到:
tableStyle.MappingName = lista.TableName;
我花了一段时间才弄明白!
【讨论】:
以上是关于Windows Mobile 应用程序中 DataGrid 的列宽的主要内容,如果未能解决你的问题,请参考以下文章
Windows Mobile 应用程序中 DataGrid 的列宽
在 Win8 x64 上使用 Sql Compact CE 的 Windows Mobile
Windows 10 Mobile是否支持UWP应用程序的Fluent设计系统?