应是可以吧,直接用datagridboolcolumn,指定它的mappingname,如果指定的mappingname 不是一个逻辑值,如是字串,如果字串不为空,则datagridboolcolumn的值为真,反之为假。

解决方案 »

  1.   


    huan_jinwu(金屋藏娇,得抱源码归)  mappingname应该对应的是表中的字段啊,可我表中就没有该字段话,该列添加了也不会显示,呵呵,我刚才试了,奇怪的是,居然不报错??
      

  2.   

    我觉得这个问题,不应在datagrid中加,即使可以,也会很麻烦的,
    如果数据表中没有,就新建一个数据表中,加上一栏,就可以了
      

  3.   

    刚才我手工构造一列添到选出的数据表中,居然说数据是只读的,我修改该列的属性,说不能修改,各位,该怎么办?//添加列
    myDs.Tables["test"].Columns.Add("selectFlag",typeof(bool),"false");
    //修改该列属性,说不能改??
    myDs.Tables["test"].Columns["selectFlag"].ReadOnly = false;
    .......DataGridTableStyle myTs = new DataGridTableStyle();
    .......
    DataGridColumnStyle selectFlag =  new DataGridBoolColumn;
    selectFlag.MappingName = "selectFlag";
    selectFlag.ReadOnly = false;
    myTs.GridColumnStyles.Add(selectFlag);
    我该怎么办??数据表中没有选择标志,手工构造的列又无法选取???
      

  4.   


    2002pine(),不在dataGrid中加,在那里加??怎么会显示到datagrid中??
      

  5.   

    改成:
    DataColumn d=new DataColumn("selectFlag",typeof(bool));
    d.DefaultValue=false;
    myDs.Tables["test"].Columns.Add(d);
    myDs.Tables["test"].Columns["selectFlag"].ReadOnly = false;
    .......
      

  6.   

    确实是这样~~~~
    我没弄清楚:
    myDs.Tables["test"].Columns.Add("selectFlag",typeof(bool),"false");和
    DataColumn d=new DataColumn("selectFlag",typeof(bool));
    d.DefaultValue=false;
    myDs.Tables["test"].Columns.Add(d);
    的区别,能告诉我吗??
      

  7.   

    myDs.Tables["test"].Columns.Add("selectFlag",typeof(bool),"false");
    后面的“false”不是设置默认值,而是设置列的Expression属性,只要设置了列的Expression属性,那么这个列就是只读的,并且不能够更改。
        从逻辑上看,设置了Expression属性,就意味着这一列的值由其他的列来决定,所以不能由用户直接更改它的值。
      

  8.   

    哦~~,明白了~~~,谢谢,我把expression看错了,以为设置成缺省的值了,呵呵~~~~