Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / ControlPropertyNameConverter.cs / 1 / ControlPropertyNameConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Globalization; using System.Reflection; using System.Web.Util; using System.Security.Permissions; ////// TypeConverter for ControlParameter's PropertyName property. /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ControlPropertyNameConverter : StringConverter { ////// Returns a list of all the propery names for a given control. /// private string[] GetPropertyNames(Control control) { ArrayList array = new ArrayList(); PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(control.GetType()); foreach (PropertyDescriptor desc in pdc) { array.Add(desc.Name); } array.Sort(Comparer.Default); return (string[])array.ToArray(typeof(string)); } ////// Returns a collection of standard values retrieved from the context specified /// by the specified type descriptor. /// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { if (context == null) { return null; } // Get ControlID ControlParameter param = (ControlParameter)context.Instance; string controlID = param.ControlID; // Check that we actually have a control ID if (String.IsNullOrEmpty(controlID)) return null; // Get designer host IDesignerHost host = (IDesignerHost)context.GetService(typeof(IDesignerHost)); Debug.Assert(host != null, "Unable to get IDesignerHost in ControlPropertyNameConverter"); if (host == null) return null; // Get control ComponentCollection allComponents = host.Container.Components; Control control = allComponents[controlID] as Control; if (control == null) return null; string[] propertyNames = GetPropertyNames(control); return new StandardValuesCollection(propertyNames); } ////// Gets whether or not the context specified contains exclusive standard values. /// public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return false; } ////// Gets whether or not the specified context contains supported standard values. /// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return (context != null); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FilterElement.cs
- BamlResourceDeserializer.cs
- SymbolEqualComparer.cs
- ToolStripPanelRenderEventArgs.cs
- HotSpot.cs
- RuntimeResourceSet.cs
- AccessedThroughPropertyAttribute.cs
- DependencyObjectPropertyDescriptor.cs
- Dump.cs
- FormatException.cs
- OledbConnectionStringbuilder.cs
- XmlSerializerFactory.cs
- EditorResources.cs
- GridItem.cs
- XmlWrappingWriter.cs
- Image.cs
- CacheSection.cs
- InternalEnumValidator.cs
- CompileLiteralTextParser.cs
- ToolboxBitmapAttribute.cs
- DataGridRowAutomationPeer.cs
- SqlCacheDependency.cs
- ContourSegment.cs
- GetPageNumberCompletedEventArgs.cs
- AffineTransform3D.cs
- EventLogWatcher.cs
- IpcChannel.cs
- SqlDataSource.cs
- ClientConfigurationHost.cs
- TextEditorSelection.cs
- XmlParserContext.cs
- TextReader.cs
- ImmutableObjectAttribute.cs
- Debug.cs
- PerspectiveCamera.cs
- Events.cs
- CodeNamespaceCollection.cs
- ConfigXmlCDataSection.cs
- ConnectionManagementElement.cs
- OlePropertyStructs.cs
- DataGridViewRowsAddedEventArgs.cs
- handlecollector.cs
- DbProviderFactory.cs
- AssociationSetMetadata.cs
- LocatorPartList.cs
- AttributeData.cs
- remotingproxy.cs
- PropertyInfoSet.cs
- EntityDataSourceView.cs
- Boolean.cs
- TrustManagerMoreInformation.cs
- XPathNodeInfoAtom.cs
- PeerPresenceInfo.cs
- ImageAttributes.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ProfileModule.cs
- QilInvokeLateBound.cs
- ThreadExceptionDialog.cs
- WindowsSolidBrush.cs
- ConfigXmlCDataSection.cs
- ProfessionalColors.cs
- BoundColumn.cs
- PermissionListSet.cs
- FunctionImportMapping.cs
- DataSysAttribute.cs
- ViewLoader.cs
- StandardToolWindows.cs
- BamlBinaryWriter.cs
- SiteIdentityPermission.cs
- TextViewElement.cs
- WebPartCancelEventArgs.cs
- ObjectIDGenerator.cs
- EmptyStringExpandableObjectConverter.cs
- PointConverter.cs
- StringSource.cs
- MachineKeyConverter.cs
- HeaderedItemsControl.cs
- RectangleGeometry.cs
- SR.cs
- ScrollProperties.cs
- CmsInterop.cs
- IndividualDeviceConfig.cs
- DependencyProperty.cs
- ForceCopyBuildProvider.cs
- sqlcontext.cs
- ObjectListCommandCollection.cs
- HyperLinkStyle.cs
- ButtonColumn.cs
- CategoryNameCollection.cs
- DisplayMemberTemplateSelector.cs
- PathFigureCollection.cs
- CryptoApi.cs
- TreeNodeStyle.cs
- MsmqIntegrationProcessProtocolHandler.cs
- InvalidOperationException.cs
- WrappedIUnknown.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- Itemizer.cs
- DefinitionBase.cs
- NegotiateStream.cs