private void bindingSource_ListChanged(object sender, ListChangedEventArgs e)
        {
            BindingSource bindingSource = (BindingSource)sender;
            IVersionable  versionable   = bindingSource.DataSource as IVersionable;

            if (versionable != null)
            {
                if (!this.datasourceVersions.ContainsKey(bindingSource))
                {
                    this.datasourceVersions[bindingSource] = versionable.ExchangeVersion;
                    this.DisableControlsByVersion(bindingSource, versionable);
                    return;
                }
                ExchangeObjectVersion exchangeObjectVersion = this.datasourceVersions[bindingSource];
                if (!exchangeObjectVersion.IsSameVersion(versionable.ExchangeVersion))
                {
                    this.datasourceVersions[bindingSource] = versionable.ExchangeVersion;
                    this.EnableControlsByVersion(bindingSource, versionable);
                    return;
                }
            }
            else
            {
                DataTable dataTable = bindingSource.DataSource as DataTable;
                if (dataTable != null)
                {
                    DataObjectStore dataObjectStore = dataTable.ExtendedProperties["DataSourceStore"] as DataObjectStore;
                    if (dataObjectStore != null)
                    {
                        foreach (string text in dataObjectStore.GetKeys())
                        {
                            IVersionable versionable2 = dataObjectStore.GetDataObject(text) as IVersionable;
                            if (versionable2 != null)
                            {
                                if (this.dataSourceInTableVersions.ContainsKey(text))
                                {
                                    ExchangeObjectVersion exchangeObjectVersion2 = this.dataSourceInTableVersions[text];
                                    if (!exchangeObjectVersion2.IsSameVersion(versionable2.ExchangeVersion))
                                    {
                                        this.dataSourceInTableVersions[text] = versionable2.ExchangeVersion;
                                        this.EnableControlsByVersion(bindingSource, versionable2);
                                    }
                                }
                                else
                                {
                                    this.dataSourceInTableVersions[text] = versionable2.ExchangeVersion;
                                    this.DisableControlsByVersion(bindingSource, versionable2);
                                }
                            }
                        }
                    }
                }
            }
        }