Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / CompMod / System / ComponentModel / ArrayConverter.cs / 1 / ArrayConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel { using Microsoft.Win32; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; using System.Runtime.Remoting; using System.Runtime.Serialization.Formatters; using System.Security.Permissions; ////// [HostProtection(SharedState = true)] public class ArrayConverter : CollectionConverter { ///Provides a type converter to convert ////// objects to and from various other representations. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == typeof(string)) { if (value is Array) { return SR.GetString(SR.ArrayConverterText, value.GetType().Name); } } return base.ConvertTo(context, culture, value, destinationType); } ///Converts the given value object to the specified destination type. ////// public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { PropertyDescriptor[] props = null; if (value.GetType().IsArray) { Array valueArray = (Array)value; int length = valueArray.GetLength(0); props = new PropertyDescriptor[length]; Type arrayType = value.GetType(); Type elementType = arrayType.GetElementType(); for (int i = 0; i < length; i++) { props[i] = new ArrayPropertyDescriptor(arrayType, elementType, i); } } return new PropertyDescriptorCollection(props); } ///Gets a collection of properties for the type of array /// specified by the value /// parameter. ////// public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return true; } private class ArrayPropertyDescriptor : SimplePropertyDescriptor { private int index; public ArrayPropertyDescriptor(Type arrayType, Type elementType, int index) : base(arrayType, "[" + index + "]", elementType, null) { this.index = index; } public override object GetValue(object instance) { if (instance is Array) { Array array = (Array)instance; if (array.GetLength(0) > index) { return array.GetValue(index); } } return null; } public override void SetValue(object instance, object value) { if (instance is Array) { Array array = (Array)instance; if (array.GetLength(0) > index) { array.SetValue(value, index); } OnValueChanged(instance, EventArgs.Empty); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //Gets a value indicating whether this object /// supports properties. ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel { using Microsoft.Win32; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; using System.Runtime.Remoting; using System.Runtime.Serialization.Formatters; using System.Security.Permissions; ////// [HostProtection(SharedState = true)] public class ArrayConverter : CollectionConverter { ///Provides a type converter to convert ////// objects to and from various other representations. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == typeof(string)) { if (value is Array) { return SR.GetString(SR.ArrayConverterText, value.GetType().Name); } } return base.ConvertTo(context, culture, value, destinationType); } ///Converts the given value object to the specified destination type. ////// public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { PropertyDescriptor[] props = null; if (value.GetType().IsArray) { Array valueArray = (Array)value; int length = valueArray.GetLength(0); props = new PropertyDescriptor[length]; Type arrayType = value.GetType(); Type elementType = arrayType.GetElementType(); for (int i = 0; i < length; i++) { props[i] = new ArrayPropertyDescriptor(arrayType, elementType, i); } } return new PropertyDescriptorCollection(props); } ///Gets a collection of properties for the type of array /// specified by the value /// parameter. ////// public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return true; } private class ArrayPropertyDescriptor : SimplePropertyDescriptor { private int index; public ArrayPropertyDescriptor(Type arrayType, Type elementType, int index) : base(arrayType, "[" + index + "]", elementType, null) { this.index = index; } public override object GetValue(object instance) { if (instance is Array) { Array array = (Array)instance; if (array.GetLength(0) > index) { return array.GetValue(index); } } return null; } public override void SetValue(object instance, object value) { if (instance is Array) { Array array = (Array)instance; if (array.GetLength(0) > index) { array.SetValue(value, index); } OnValueChanged(instance, EventArgs.Empty); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Gets a value indicating whether this object /// supports properties. ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextFindEngine.cs
- DataFormats.cs
- SiteMapPath.cs
- DependentList.cs
- DBCSCodePageEncoding.cs
- ConnectionManager.cs
- KnownColorTable.cs
- RuntimeResourceSet.cs
- ToolboxDataAttribute.cs
- Rijndael.cs
- DefaultPropertyAttribute.cs
- ToolStripDropDownItemDesigner.cs
- NamespaceEmitter.cs
- ReplacementText.cs
- MsdtcClusterUtils.cs
- SQLRoleProvider.cs
- GridView.cs
- DataGridViewCellConverter.cs
- HtmlMeta.cs
- CustomErrorsSection.cs
- ScriptResourceAttribute.cs
- WaitHandle.cs
- Double.cs
- ToolStripContainer.cs
- EntityDescriptor.cs
- XmlNamespaceDeclarationsAttribute.cs
- ImageCodecInfo.cs
- ResourcesGenerator.cs
- Grid.cs
- DirectoryInfo.cs
- InputLanguageEventArgs.cs
- AsyncResult.cs
- WebPartTransformerCollection.cs
- FontSizeConverter.cs
- CompositeDuplexElement.cs
- TemplatedEditableDesignerRegion.cs
- TerminateDesigner.cs
- DynamicValueConverter.cs
- XmlIgnoreAttribute.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- SystemInformation.cs
- ServerValidateEventArgs.cs
- FragmentNavigationEventArgs.cs
- ConfigErrorGlyph.cs
- BinaryReader.cs
- Events.cs
- TextServicesContext.cs
- TargetInvocationException.cs
- PropertyValue.cs
- XamlInt32CollectionSerializer.cs
- HashMembershipCondition.cs
- SharedPerformanceCounter.cs
- MediaTimeline.cs
- ProfileManager.cs
- DataRecordInternal.cs
- CorrelationValidator.cs
- WebPartDisplayModeCollection.cs
- InternalTypeHelper.cs
- ResourceBinder.cs
- XmlArrayAttribute.cs
- DigitShape.cs
- BezierSegment.cs
- WebHttpElement.cs
- SqlCacheDependencySection.cs
- BlurEffect.cs
- XNodeSchemaApplier.cs
- FloaterBaseParaClient.cs
- X509CertificateTrustedIssuerElementCollection.cs
- WithParamAction.cs
- SchemaManager.cs
- ObjectQueryExecutionPlan.cs
- ManipulationStartedEventArgs.cs
- WindowsTokenRoleProvider.cs
- ColorKeyFrameCollection.cs
- EasingKeyFrames.cs
- UTF7Encoding.cs
- ComPlusTypeLoader.cs
- HttpCapabilitiesEvaluator.cs
- GridSplitterAutomationPeer.cs
- HiddenFieldDesigner.cs
- DrawingCollection.cs
- SafeJobHandle.cs
- Attributes.cs
- PageThemeCodeDomTreeGenerator.cs
- ResourceProviderFactory.cs
- ReferenceService.cs
- RealProxy.cs
- ObjectToIdCache.cs
- Model3DCollection.cs
- RequestCacheEntry.cs
- InvariantComparer.cs
- ObjectDataSourceEventArgs.cs
- WSUtilitySpecificationVersion.cs
- LayoutUtils.cs
- SQLByte.cs
- DefaultPrintController.cs
- CodeAttributeDeclaration.cs
- SafeFileMappingHandle.cs
- HatchBrush.cs
- DecimalStorage.cs