Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ResourceReader.cs
- FilterElement.cs
- WasHttpHandlersInstallComponent.cs
- BamlBinaryWriter.cs
- GenericQueueSurrogate.cs
- CodeNamespaceImport.cs
- SpellerHighlightLayer.cs
- SapiGrammar.cs
- XhtmlBasicImageAdapter.cs
- CommonGetThemePartSize.cs
- Int16.cs
- ReachPrintTicketSerializer.cs
- MouseCaptureWithinProperty.cs
- ToolCreatedEventArgs.cs
- XmlLoader.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ObjectSelectorEditor.cs
- Selector.cs
- AppDomainFactory.cs
- HiddenField.cs
- RemotingService.cs
- AnnotationStore.cs
- OutputCache.cs
- BrowserDefinitionCollection.cs
- COM2Enum.cs
- DependsOnAttribute.cs
- CacheDict.cs
- DataGridViewCellMouseEventArgs.cs
- InputProcessorProfilesLoader.cs
- PasswordRecovery.cs
- MarshalByRefObject.cs
- StreamGeometryContext.cs
- WebPartConnectionsConfigureVerb.cs
- AsyncCodeActivityContext.cs
- KeyPullup.cs
- BindingMemberInfo.cs
- ServiceObjectContainer.cs
- SafeThemeHandle.cs
- TreeSet.cs
- HttpRequest.cs
- Viewport2DVisual3D.cs
- UserControlBuildProvider.cs
- SegmentInfo.cs
- TableLayoutPanelResizeGlyph.cs
- unitconverter.cs
- ReliableChannelBinder.cs
- NavigateUrlConverter.cs
- XmlKeywords.cs
- SchemaElement.cs
- PeerContact.cs
- BitmapEffectDrawingContextWalker.cs
- PolicyUnit.cs
- Line.cs
- GregorianCalendar.cs
- safelink.cs
- Stackframe.cs
- BitHelper.cs
- UIHelper.cs
- ThicknessConverter.cs
- listitem.cs
- ApplicationBuildProvider.cs
- NativeMethods.cs
- Tokenizer.cs
- PropertyChangingEventArgs.cs
- DispatcherTimer.cs
- BindableAttribute.cs
- CatalogPartCollection.cs
- MemoryRecordBuffer.cs
- TransformDescriptor.cs
- SettingsPropertyIsReadOnlyException.cs
- DataGridRowAutomationPeer.cs
- UseAttributeSetsAction.cs
- TextAdaptor.cs
- EditorPart.cs
- documentsequencetextcontainer.cs
- VScrollProperties.cs
- RegistryKey.cs
- EllipseGeometry.cs
- ISAPIRuntime.cs
- ColorComboBox.cs
- DesignerActionItemCollection.cs
- Int16KeyFrameCollection.cs
- TextRangeAdaptor.cs
- RelatedImageListAttribute.cs
- FormCollection.cs
- UnsafeNativeMethods.cs
- CqlErrorHelper.cs
- DataRecordInternal.cs
- Blend.cs
- ControlEvent.cs
- Stroke2.cs
- DateTimeAutomationPeer.cs
- webclient.cs
- TabControlAutomationPeer.cs
- Table.cs
- DataGridAddNewRow.cs
- _SSPISessionCache.cs
- ListSourceHelper.cs
- EffectiveValueEntry.cs
- UpDownBaseDesigner.cs