none
哪个Attribute可以对自动绑定的控件隐藏public的字段? RRS feed

  • 问题

  • 比如我写了一个数据类,用来给listview自动绑定,很方便,不过有些字段或信息不需要绑定,能不能通过设置Attribute 来让listview忽略这些个字段? 有个DataBindingAttribute,但似乎实现不了这个功能。

    class MyData // List<MyData> 被当成datasource的返回值给listview等绑定
    {
    public int Int1;
    public int Int2;  // 默认这2个会被自动绑定进去

    [这里放什么东西能让自动绑定忽略?]
    public int Int9;  // 这个不想被显示
    }

    虽然可以自己手动修改绑定后的字段,但总觉得不爽。
    另外,能不能设置绑定后的标题?
    霸王
    2010年3月15日 14:01

答案

  • 你好!

    似乎没有这样的 Attribute ,你可以通过继承的方式来隐藏这个字段或属性。比如:

    public class MyDataEx : MyData
    {
    private new int Int9;
    }

    如果你是自己绑定的,这个标题需要每一列都去指定一次,不方便。

    我在工作中常用的方式是,定义一个存储过程在这个过程中以中文的方式为字段命名,这样不但可以在存储过程中指定列名也同时可以达到在存储过程中定义显示内容,比如说显示哪些字段、字段的顺序等。



    知识改变命运,奋斗成就人生!
    • 已标记为答案 Jimt200010 2010年3月17日 9:22
    2010年3月16日 1:01
    版主

全部回复

  • 你好!

    似乎没有这样的 Attribute ,你可以通过继承的方式来隐藏这个字段或属性。比如:

    public class MyDataEx : MyData
    {
    private new int Int9;
    }

    如果你是自己绑定的,这个标题需要每一列都去指定一次,不方便。

    我在工作中常用的方式是,定义一个存储过程在这个过程中以中文的方式为字段命名,这样不但可以在存储过程中指定列名也同时可以达到在存储过程中定义显示内容,比如说显示哪些字段、字段的顺序等。



    知识改变命运,奋斗成就人生!
    • 已标记为答案 Jimt200010 2010年3月17日 9:22
    2010年3月16日 1:01
    版主
  • Listview类有歧义,我暂时先把这个帖子移动到Windows Forms的论坛。
    如果你需要System.Web.UI.WebControls.Listview类的帮助的话,可以去ASP.Net论坛。


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年3月16日 1:04
    版主
  • 跑这里来了,怪不得好几天都没看到。

    这个确实是个通用性的问题,而且两边都要用到。

    由于有些字段即要让处理程序访问的到,又不想让自动绑定给绑进去,所以才想到了attribute,自己找了半天也没找到合适的,只能来问了,确实没有attribute支持的话也没办法,考虑把一些比较特殊的属性(如错误信息等)转成函数,这样就会被忽略了。。。

    霸王
    2010年3月17日 9:21
  • 一般的做法是在集合类上实现ITypedList。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年3月17日 20:52
    版主