ds= new DataSet();
ds.ReadXml("\\storage card\\health_knowledge.xml");
dataGrid1.DataSource = ds.Tables[0];
请教:windows mobile 程序中,读取xml文件到datatables中后,datagrid如何隐藏列呢?
下面的方法已经试过,无法实现效果:方法1.   ds.Tables[0].Columns[2].ColumnMapping = MappingType.Hidden;
方法2(wm程序中datagrid没有.columns)   DataGrid1.Columns[2].Visible = !DataGrid1.Columns[2].Visible;
方法3(这个方法没写第三列和第四列了,因为前两列已经设定了宽度,但是显示效果不变)
                DataGridTableStyle ts = new DataGridTableStyle();
                ts.MappingName = "Tables[0]";                DataGridColumnStyle id = new DataGridTextBoxColumn();
                id.MappingName = "id";
                id.HeaderText = "编号";
                id.Width = 10;
                ts.GridColumnStyles.Add(id);                DataGridColumnStyle problem = new DataGridTextBoxColumn();
                problem.MappingName = "problem";
                problem.HeaderText = "标题";
                problem.Width = 50;
                ts.GridColumnStyles.Add(problem);                dataGrid1.TableStyles.Add(ts);我目的是要隐藏第三列和第四列,因为双击单元格弹出的窗口中要用到当前行第三列和第四列的数据,
所以也不能用  ds.Tables[0].Columns.Remove("solution");
              ds.Tables[0].Columns.Remove("others");
来直接删除三四两列。在线等高手指教

解决方案 »

  1.   

    wm 没有做过 顶一下.JF
      

  2.   

    设置datagrid第三列,第四列不可见,行不行?
      

  3.   

    我找到的方法不行现在算是解决了,我复制了一个datatable,把后两列删了,
    datagrid里面显示这个新table,双击单元格的时候显示原先那个table的三四两格的数据。新问题:datagrid里面显示新table的时候,只有两列,右边还有一大块空间,
    能不能让第二列的宽度拉宽点?上面方法三说了,网上找的那个DataGridTableStyle的方法不行。
      

  4.   

    把datagrid第三列,第四列不可见的属性visible设置为false不就可以隐藏了吗?
      

  5.   

    那个也试过了,失败。现在用两个表凑合着用了,但是不知道怎么调整列宽,用DataGridTableStyle来试,没效果
      

  6.   

    id.Width =-1;这个可以的