zoukankan      html  css  js  c++  java
  • 如何对实体对象进行绑定.

    初期.
    定义了一个实体的强类型集合.
    继承于CollectionBase
    由于CollectionBase已经实现了IList接口,我的实体也可以绑定到了datagrid.
    默认只要是类的公共属性都会出现在datagrid中.这不是我想要的.翻了一下msdn和在网上查了一下资料,需要使用接口ItypeList才能实现我的要求.

    ITypedList接口介绍
    提供发现可绑定列表架构的功能,其中可用于绑定的属性不同于要绑定到的对象的公共属性。例如,当使用表示客户表的 DataView 时,您要绑定到 DataView 表示的客户对象上的属性,而不是 DataView 的属性。
    接口方法:
    GetItemProperties
    GetListName
    其中最重要的是GetItemProperties 方法,实现它就能自由灵活的控制,要绑定的属性列表.

    ItypeList接口

    其中方法:GetCustomProperties是用于实体类的那些属性是允许绑定的一个数组.

    同时我们还需要实现描述属性的类CustomPropertyDescriptor继承于System.ComponentModel.PropertyDescriptor

    这样就算定义完成了,可能实现在实体的绑定.
    如果还需要在datagrid中进行编辑,添加,移除,排序等操作.还要在实体集合上实现IBindingList接口.

    下面是我的持久层实现在对实体集合进行编辑的代码:

    获取实体集合


    在datagrid中编辑之后,保存实体

     

    还没有处理的问题
    1.在进行实体的插入后,把自动增长字段的值更新到实体
    2.实体的属性发生改变后,绑定的控件也能实时发应,.net2.0到有一个接口INotifyPropertyChanged可以实现,不知道.net1.1有没有这样的接口,知道的朋友请踢教.

  • 相关阅读:
    研赛02939有理多项式的根的问题
    [真题解析]广州大学2010年高等代数05(01)正定矩阵的和的逆不等于逆的和
    [真题解析]广州大学2011年高等代数考研试题参考解答04(考得太多的)稍微做下初等列变换的循环矩阵的行列式
    [真题解析]广州大学2011年高等代数考研试题参考解答02跟着命题人思路走, 第2问定要用上第1问哦
    [真题解析]广州大学2012年高等代数考研试题参考解答03用反证法推理时定要有理有据!
    [真题解析]广州大学2011年高等代数考研试题参考解答09子空间和的正交补等于正交补的交
    先进计算产业发展 白皮书
    《审美教育书简》笔记
    《欢迎来到你的世界:建筑如何塑造我们的情感、认知和幸福》笔记
    《论美国的民主》笔记
  • 原文地址:https://www.cnblogs.com/zqonline/p/493227.html
Copyright © 2011-2022 走看看