zoukankan      html  css  js  c++  java
  • BindingManagerBase 类的应用

    查帮助可得

    管理绑定到相同数据源和数据成员的所有 Binding 对象。该类为抽象类。

    BindingManagerBase 允许对 Windows 窗体上绑定到相同数据源的数据绑定控件进行同步。(若要将控件简单绑定到数据源,请将一个 Binding 对象添加到该控件的 ControlBindingsCollection,它通过 DataBindings 属性来访问)。例如,假定某窗体包含两个 TextBox 控件,它们绑定到相同数据源的不同列(数据源可以是包含客户名称的 DataTable,而列可能包含名字和姓氏)。这两个控件必须同步以便一起显示同一客户的正确姓名。从 BindingManagerBase 类继承的 CurrencyManager 通过维护指向列表当前项的指针来完成该同步。TextBox 控件被绑定到当前项,因此它们显示同一行的信息。在当前项更改时,CurrencyManager 通知所有绑定控件,以便它们能够刷新它们的数据。此外,您可以设置 Position 属性来指定控件所指向的 DataTable 中的行。若要确定列表中存在的行数,请使用 Count 属性。

    CurrencyManager 很有必要,因为数据源未必维护当前项的指针。例如,数组和 ArrayList 对象可以是数据源,但它们没有返回当前项的属性。若要获取当前项,请使用 Current 属性。

    PropertyManager 也从 BindingManagerBase 继承,并且它用于维护对象的当前属性,而不是列表中当前对象的属性。因此,试图为 PropertyManager 设置 Position 属性或 Count 属性无效。

    若要创建 BindingManagerBase 对象,请使用 BindingContext 类,它根据所管理的数据源返回 CurrencyManagerPropertyManager

    对继承者的说明:  当从 BindingManagerBase 继承时,必须重写下列成员:AddNewCountCancelCurrentEditCurrentEndCurrentEditGetItemPropertiesOnCurrentChangedPositionRemoveAtResumeBindingSuspendBindingUpdateIsBinding

    事例如下
    先定义
    public BindingManagerBase BindingManagerBaseThis;
    private DataSet ds=new DataSet();


    FormLoad()里
         ds.Clear();
        // 省冽如何获取数据集合 myds
        ds.Merge(myds,false);
        dataviewThis = new DataView(.Tables[0]);
        BindingManagerBaseThis = BindingContext[dataviewThis];
        this.dataGrid1.DataSource=dataviewThis;

    这样一来,你修改的DataGrid的值会同时更新DataSet的值

  • 相关阅读:
    E-R图转换成关系模型
    折叠表格
    ICE在Linux下的安装
    yum 安装gcc
    dll和so文件区别与构成
    linux进入图形界面的方法
    ACE vs Boost: Singleton的实现
    ACE与ASIO之间关于Socket编程的比较
    Linux 下编译安装ACE时遇到的问题及解决
    Linux下安装、配置ACE
  • 原文地址:https://www.cnblogs.com/meetweb/p/281468.html
Copyright © 2011-2022 走看看