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有没有这样的接口,知道的朋友请踢教.

  • 相关阅读:
    分区范围oracle partition table related operations
    软件应用交委有权力叫停打车软件吗?
    美国竞争对手华为将反击竞争对手:我们不会对它们友好
    类型名称了解typename的双重意义
    全局变量局部变量ScriptCase中的全局变量、局部变量
    方法定义django admin中 外键下拉框添加过滤(只需要显示我所要的过滤结果)
    移动设备恶意软件移动设备恶意软件应用泛滥 安卓成攻击首选
    nbtstat命令详解
    route命令范例
    硬盘MBR全面分析
  • 原文地址:https://www.cnblogs.com/zqonline/p/493227.html
Copyright © 2011-2022 走看看