Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / DataViewSettingCollection.cs / 1 / 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),
]
#if WINFSInternalOnly
internal
#else
public
#endif
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.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripDropDownItemDesigner.cs
- ToolStripContainer.cs
- FileClassifier.cs
- ItemContainerGenerator.cs
- Activator.cs
- Button.cs
- DataGridViewCellLinkedList.cs
- TableLayoutCellPaintEventArgs.cs
- CacheChildrenQuery.cs
- GPRECT.cs
- ServiceNotStartedException.cs
- SqlDependencyListener.cs
- HierarchicalDataBoundControlAdapter.cs
- WebSysDefaultValueAttribute.cs
- ProfileBuildProvider.cs
- XmlMapping.cs
- ExpressionEditorAttribute.cs
- TextChangedEventArgs.cs
- ControlHelper.cs
- WebHostedComPlusServiceHost.cs
- SourceFilter.cs
- XmlSchemaAnnotation.cs
- InputLangChangeRequestEvent.cs
- XmlResolver.cs
- Int32RectValueSerializer.cs
- Int32Rect.cs
- DataListCommandEventArgs.cs
- FilterQueryOptionExpression.cs
- RadioButtonFlatAdapter.cs
- MSAAWinEventWrap.cs
- QilStrConcat.cs
- Thickness.cs
- DrawingBrush.cs
- loginstatus.cs
- IISMapPath.cs
- StrongNameUtility.cs
- ChtmlTextBoxAdapter.cs
- Label.cs
- ImagingCache.cs
- TablePattern.cs
- ObservableDictionary.cs
- TrackBarDesigner.cs
- ScriptingProfileServiceSection.cs
- XmlSchemaAny.cs
- DataFormats.cs
- Binding.cs
- DataPagerCommandEventArgs.cs
- RequestStatusBarUpdateEventArgs.cs
- PtsContext.cs
- StrokeNodeEnumerator.cs
- Encoding.cs
- TableLayoutStyle.cs
- LineBreakRecord.cs
- NonceToken.cs
- DataStreams.cs
- VideoDrawing.cs
- SystemTcpConnection.cs
- ConnectionConsumerAttribute.cs
- ShapingWorkspace.cs
- LogLogRecordEnumerator.cs
- ObjectDataProvider.cs
- SystemIPInterfaceStatistics.cs
- ListViewAutomationPeer.cs
- TypeUtils.cs
- IPAddressCollection.cs
- ToolbarAUtomationPeer.cs
- Visual.cs
- GenericWebPart.cs
- CounterCreationData.cs
- TargetConverter.cs
- Debug.cs
- RuleAttributes.cs
- OLEDB_Util.cs
- SvcFileManager.cs
- TransformedBitmap.cs
- XsltLoader.cs
- ping.cs
- CompleteWizardStep.cs
- EndpointInstanceProvider.cs
- RelatedImageListAttribute.cs
- SharedPersonalizationStateInfo.cs
- Column.cs
- FormsAuthenticationConfiguration.cs
- RowsCopiedEventArgs.cs
- ZipIOBlockManager.cs
- ProgressChangedEventArgs.cs
- BasicHttpSecurityMode.cs
- DynamicUpdateCommand.cs
- HandlerFactoryWrapper.cs
- ParallelEnumerable.cs
- RegistryPermission.cs
- Span.cs
- XamlTypeWithExplicitNamespace.cs
- ConstraintStruct.cs
- HTMLTagNameToTypeMapper.cs
- NullReferenceException.cs
- SoapHeader.cs
- RpcAsyncResult.cs
- DataStreamFromComStream.cs
- InputBinder.cs