Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / DataViewSettingCollection.cs / 1305376 / DataViewSettingCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; using System.Diagnostics; using System.ComponentModel; using System.Collections; [ Editor("Microsoft.VSDesigner.Data.Design.DataViewSettingsCollectionEditor, " + AssemblyRef.MicrosoftVSDesigner, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing), ] public class DataViewSettingCollection : ICollection { private readonly DataViewManager dataViewManager; private readonly Hashtable list = new Hashtable(); internal DataViewSettingCollection(DataViewManager dataViewManager) { if (dataViewManager == null) { throw ExceptionBuilder.ArgumentNull("dataViewManager"); } this.dataViewManager = dataViewManager; } public virtual DataViewSetting this[DataTable table] { get { if (table == null) { throw ExceptionBuilder.ArgumentNull("table"); } DataViewSetting dataViewSetting = (DataViewSetting) list[table]; if(dataViewSetting == null) { dataViewSetting = new DataViewSetting(); this[table] = dataViewSetting; } return dataViewSetting; } set { if (table == null) { throw ExceptionBuilder.ArgumentNull("table"); } value.SetDataViewManager(dataViewManager); value.SetDataTable(table); list[table] = value; } } private DataTable GetTable(string tableName) { DataTable dt = null; DataSet ds = dataViewManager.DataSet; if(ds != null) { dt = ds.Tables[tableName]; } return dt; } private DataTable GetTable(int index) { DataTable dt = null; DataSet ds = dataViewManager.DataSet; if(ds != null) { dt = ds.Tables[index]; } return dt; } public virtual DataViewSetting this[string tableName] { get { DataTable dt = GetTable(tableName); if(dt != null) { return this[dt]; } return null; } } public virtual DataViewSetting this[int index] { get { DataTable dt = GetTable(index); if(dt != null) { return this[dt]; } return null; } set { DataTable dt = GetTable(index); if(dt != null) { this[dt] = value; }else { // throw excaption here. } } } // ----------- ICollection ------------------------- public void CopyTo(Array ar, int index) { System.Collections.IEnumerator Enumerator = GetEnumerator(); while (Enumerator.MoveNext()) { ar.SetValue(Enumerator.Current, index++); } } public void CopyTo(DataViewSetting[] ar, int index) { System.Collections.IEnumerator Enumerator = GetEnumerator(); while (Enumerator.MoveNext()) { ar.SetValue(Enumerator.Current, index++); } } [Browsable(false)] public virtual int Count { get { DataSet ds = dataViewManager.DataSet; return (ds == null) ? 0 : ds.Tables.Count; } } public IEnumerator GetEnumerator() { // I have to do something here. return new DataViewSettingsEnumerator(dataViewManager); } [ Browsable(false) ] public bool IsReadOnly { get { return true; } } [Browsable(false)] public bool IsSynchronized { get { // so the user will know that it has to lock this object return false; } } [Browsable(false)] public object SyncRoot { get { return this; } } internal void Remove(DataTable table) { list.Remove(table); } private sealed class DataViewSettingsEnumerator : IEnumerator { DataViewSettingCollection dataViewSettings; IEnumerator tableEnumerator; public DataViewSettingsEnumerator(DataViewManager dvm) { DataSet ds = dvm.DataSet; if(ds != null) { dataViewSettings = dvm.DataViewSettings; tableEnumerator = dvm.DataSet.Tables.GetEnumerator(); }else { dataViewSettings = null; tableEnumerator = DataSet.zeroTables.GetEnumerator(); } } public bool MoveNext() { return tableEnumerator.MoveNext(); } public void Reset() { tableEnumerator.Reset(); } public object Current { get { return dataViewSettings[(DataTable) tableEnumerator.Current]; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SubqueryRules.cs
- ContextItemManager.cs
- LogEntrySerializationException.cs
- KeyInstance.cs
- MediaContextNotificationWindow.cs
- AttributeCollection.cs
- GrammarBuilderDictation.cs
- BoundPropertyEntry.cs
- FloaterBaseParagraph.cs
- TdsValueSetter.cs
- CompModSwitches.cs
- BackStopAuthenticationModule.cs
- LogicalExpr.cs
- DaylightTime.cs
- DataStorage.cs
- XmlObjectSerializerReadContext.cs
- WebServiceMethodData.cs
- MetadataSource.cs
- MissingManifestResourceException.cs
- ListView.cs
- FormCollection.cs
- CustomError.cs
- SoapObjectReader.cs
- IpcClientChannel.cs
- PlainXmlWriter.cs
- OdbcParameterCollection.cs
- ITreeGenerator.cs
- nulltextnavigator.cs
- WaitHandleCannotBeOpenedException.cs
- EndEvent.cs
- Visual3DCollection.cs
- XmlAttributeProperties.cs
- WorkflowControlEndpoint.cs
- DataObjectMethodAttribute.cs
- XamlVector3DCollectionSerializer.cs
- ProfessionalColors.cs
- ListViewItemEventArgs.cs
- ThrowHelper.cs
- ListenerSessionConnectionReader.cs
- ExpressionBuilderContext.cs
- CustomCredentialPolicy.cs
- OutOfProcStateClientManager.cs
- SiteMembershipCondition.cs
- VectorAnimation.cs
- RectangleF.cs
- RelationshipEnd.cs
- GeneralTransform3DTo2D.cs
- XmlSchemaAnnotation.cs
- XmlStringTable.cs
- CodeTypeDelegate.cs
- ValidationException.cs
- MailAddressParser.cs
- ListViewEditEventArgs.cs
- _UriSyntax.cs
- RtfNavigator.cs
- UnsafeNativeMethods.cs
- ScriptBehaviorDescriptor.cs
- Behavior.cs
- LoginCancelEventArgs.cs
- XmlSchemaImport.cs
- TextBoxRenderer.cs
- ConfigXmlWhitespace.cs
- BamlReader.cs
- InputGestureCollection.cs
- XmlSchemaAttributeGroup.cs
- EntityUtil.cs
- SafeArrayRankMismatchException.cs
- IsolatedStorageFilePermission.cs
- SecurityResources.cs
- SqlDataSourceCommandEventArgs.cs
- DynamicVirtualDiscoSearcher.cs
- XmlNamedNodeMap.cs
- ItemAutomationPeer.cs
- FolderNameEditor.cs
- SafeNativeMethods.cs
- XamlSerializerUtil.cs
- ImportCatalogPart.cs
- PrimitiveDataContract.cs
- EditorZoneBase.cs
- BindingsCollection.cs
- DataFieldCollectionEditor.cs
- Match.cs
- XmlDsigSep2000.cs
- ImpersonateTokenRef.cs
- TextViewElement.cs
- DataTemplate.cs
- BitConverter.cs
- MbpInfo.cs
- ServerValidateEventArgs.cs
- GeometryHitTestResult.cs
- WhitespaceRuleReader.cs
- DeviceContexts.cs
- FloaterParaClient.cs
- baseshape.cs
- StylusPointCollection.cs
- DbCommandTree.cs
- DateTimeValueSerializer.cs
- BasePropertyDescriptor.cs
- DetailsView.cs
- ReadWriteSpinLock.cs