/// <summary>
        /// 将为 ExecuteSelect(DataSourceSelectArguments) 操作请求的功能与指定的数据源视图所支持的功能进行比较。
        /// </summary>
        /// <param name="view"></param>
        public void RaiseUnsupportedCapabilitiesError(DataSourceViewEx view)
        {
            DataSourceCapabilities capabilities = this.requestedCapabilities & ~this.supportedCapabilities;
            if ((capabilities & DataSourceCapabilities.Sort) != DataSourceCapabilities.None)
                view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.Sort);

            if ((capabilities & DataSourceCapabilities.Page) != DataSourceCapabilities.None)
                view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.Page);

            if ((capabilities & DataSourceCapabilities.RetrieveTotalRowCount) != DataSourceCapabilities.None)
                view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.RetrieveTotalRowCount);
        }
 DataSourceViewEx ConnectToDataSourceView()
 {
     if (!this.currentViewValid || base.DesignMode)
     {
         if (this.currentView != null)
             this.currentView.DataSourceViewChanged -= new EventHandler(this.OnDataSourceViewChanged);
         this.currentDataSource = this.GetDataSource();
         string dataMember = this.DataMember;
         if (this.currentDataSource == null)
         {
             //this.OnBuildDataSource(EventArgs.Empty);
             this.currentDataSource = new ReadOnlyDataSourceEx(this.DataSource, dataMember);
         }
         this.currentDataSourceValid = true;
         DataSourceViewEx view = this.currentDataSource.GetView(dataMember);
         if (view == null)
             throw new InvalidOperationException("DataControl_ViewNotFound");
         else
         {
             this.currentView = view;
             this.currentView.DataSourceViewChanged += new EventHandler(this.OnDataSourceViewChanged);
             this.currentViewValid = true;
         }
     }
     return this.currentView;
 }