AppleSeeker's Tech Blog
Welcome to AppleSeeker's space

在WM应用程序中,不免需要使用到功能最强大的DataGrid.在.net cf中,DataGrid已完全弱化了.

下面几个问题,则是很多网友在开发中的一些疑问,我在此总结下,希望对大家有所帮助.

在实际开发中有些细节需要注意.

我们可能一次取出N个列的数据源,有些并不想显示在DG中.我们可以先创建好列.然后将指定列的MappingName即可.
此时,没有对应MappingName的列数据不会显示.

如何创建列头?
通过DataGird的TableStyle属性,创建一个DataGridTableStyle.
然后再创建多个DataGridColumnStyle即可.并指定其MappingName.
如果MappingName在数据源中找不到对应的,则不会显示.(区分大小写)

是否可以只创建TableStyle?
当然可以,只要指定好TableStyle的MappingName,如果不创建ColumnStyle,则会将数据源中的列全部绑定.
一旦创建了ColumnStyle,则按照ColumnStyle的显示.哪怕ColumnStyle指定的都不存在(则不显示所有列).

为何不能隐藏列?
.net cf中的DataGird中的Column不支持Visiable这个属性.
我们只有将其Width属性设为0,让其不显示.(取巧)

是否支持Master-Details方式?
不支持该方式.我们可以自己去实现,但.net cf本身的DataGrid是不支持的.

如何获得当前行,列?
通过DataGrid对象的CurrentCell的ColumnNumber(列索引下标),RowNumber(行索引下标).

如何拖动DataGrid的列?
.net cf中当然不支持拉.当然.我们完全自己去实现,

下面的图片示例用于隐藏列.

数据绑定拉.我们选择一行.

看到了不?我们选择了第5行,询问是否要隐藏该行?

看到了吗?第2列隐藏了,是设置了Width为0后的结果.你可以在那狂拉,呵呵,应该拉出第2列的.

代码下载:DeviceTechDemo.rar

运行环境:VS2008 + WM6.0 + .net cf3.5

Author:AppleSeeker(冯峰)
Date:2009-2-12

文章导读:移动开发索引贴

posted on 2009-02-12 15:03  AppleSeeker(冯峰)  阅读(2140)  评论(4编辑  收藏  举报