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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectStateFormatter.cs
- WebHeaderCollection.cs
- BindingManagerDataErrorEventArgs.cs
- RoutedEvent.cs
- TrackingConditionCollection.cs
- WebUtil.cs
- NameTable.cs
- CacheEntry.cs
- DataTransferEventArgs.cs
- SecurityCriticalDataForSet.cs
- StylusPoint.cs
- ObjectParameter.cs
- TextBreakpoint.cs
- EnumValAlphaComparer.cs
- GridViewRowCollection.cs
- DCSafeHandle.cs
- ICspAsymmetricAlgorithm.cs
- ObservableCollectionDefaultValueFactory.cs
- TransformerTypeCollection.cs
- ObjectConverter.cs
- DataTableReader.cs
- ThreadStartException.cs
- XmlSchemaSimpleTypeList.cs
- ParallelTimeline.cs
- Reference.cs
- DataSysAttribute.cs
- PatternMatcher.cs
- ModelTreeEnumerator.cs
- FocusWithinProperty.cs
- OrderedDictionaryStateHelper.cs
- ContainerControl.cs
- ScaleTransform3D.cs
- DetailsViewDeleteEventArgs.cs
- WorkerRequest.cs
- PeerNameRecord.cs
- x509store.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ActivityTypeCodeDomSerializer.cs
- ControlIdConverter.cs
- CustomWebEventKey.cs
- EdmComplexTypeAttribute.cs
- AutomationPatternInfo.cs
- WebPartZoneBaseDesigner.cs
- WebConfigurationHost.cs
- PersonalizationState.cs
- StringFreezingAttribute.cs
- ParameterToken.cs
- counter.cs
- DocumentXPathNavigator.cs
- CodeCompiler.cs
- SecureConversationServiceCredential.cs
- FontDialog.cs
- PersonalizationAdministration.cs
- HtmlTableRowCollection.cs
- LinqToSqlWrapper.cs
- SSmlParser.cs
- PingOptions.cs
- CompilerState.cs
- COM2IDispatchConverter.cs
- BindingContext.cs
- DynamicDocumentPaginator.cs
- SimpleFieldTemplateUserControl.cs
- Constant.cs
- SecurityRuntime.cs
- XmlSchemaAny.cs
- WindowsTokenRoleProvider.cs
- BinarySerializer.cs
- Parser.cs
- WindowsGraphics.cs
- PrintingPermissionAttribute.cs
- DescendantOverDescendantQuery.cs
- SQLInt16Storage.cs
- SizeConverter.cs
- SecurityPermission.cs
- uribuilder.cs
- AdvancedBindingEditor.cs
- ObjectViewEntityCollectionData.cs
- ControlBuilderAttribute.cs
- Invariant.cs
- Stack.cs
- NegotiationTokenAuthenticatorStateCache.cs
- RepeatEnumerable.cs
- ASCIIEncoding.cs
- MetafileHeaderWmf.cs
- FormClosedEvent.cs
- ValidatedMobileControlConverter.cs
- DBSchemaRow.cs
- DependencyPropertyAttribute.cs
- ToggleButton.cs
- UserControl.cs
- indexingfiltermarshaler.cs
- ItemCollection.cs
- StructuredTypeInfo.cs
- NativeRecognizer.cs
- AsymmetricSignatureFormatter.cs
- MergeFailedEvent.cs
- WebServiceTypeData.cs
- ServiceEndpointCollection.cs
- GeneratedContractType.cs
- FreezableCollection.cs