Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / Util / DictionaryCustomTypeDescriptor.cs / 1305376 / DictionaryCustomTypeDescriptor.cs
namespace System.Web.DynamicData.Util { using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; internal class DictionaryCustomTypeDescriptor : CustomTypeDescriptor { private IDictionary_values; private PropertyDescriptorCollection _properties; public DictionaryCustomTypeDescriptor(IDictionary values) { if (values == null) { throw new ArgumentNullException("values"); } _values = values; } public object GetValue(string name) { object value; if (_values.TryGetValue(name, out value)) { return value; } return null; } public override PropertyDescriptorCollection GetProperties() { if (_properties == null) { var dictionaryProps = _values.Keys.Select(propName => new DictionaryPropertyDescriptor(propName)); _properties = new PropertyDescriptorCollection(dictionaryProps.ToArray()); } return _properties; } } internal class DictionaryPropertyDescriptor : PropertyDescriptor { public DictionaryPropertyDescriptor(string name) : base(name, null /* attrs */) { } public override bool CanResetValue(object component) { throw new NotSupportedException(); } public override Type ComponentType { get { throw new NotSupportedException(); } } public override object GetValue(object component) { // Try to cast the component to a DictionaryCustomTypeDescriptor and get the value in the dictonary // that corresponds to this property DictionaryCustomTypeDescriptor typeDescriptor = component as DictionaryCustomTypeDescriptor; if (typeDescriptor == null) { return null; } return typeDescriptor.GetValue(Name); } public override bool IsReadOnly { get { throw new NotSupportedException(); } } public override Type PropertyType { get { throw new NotSupportedException(); } } public override void ResetValue(object component) { throw new NotSupportedException(); } public override void SetValue(object component, object value) { throw new NotSupportedException(); } public override bool ShouldSerializeValue(object component) { throw new NotSupportedException(); } } } // 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
- PeerService.cs
- GridViewAutomationPeer.cs
- DataControlFieldCollection.cs
- FormParameter.cs
- XmlILIndex.cs
- LocalClientSecuritySettings.cs
- PackageProperties.cs
- PerformanceCounterPermissionEntry.cs
- HttpFileCollection.cs
- FileLogRecord.cs
- SkewTransform.cs
- PipeConnection.cs
- DocumentSchemaValidator.cs
- loginstatus.cs
- SessionEndingCancelEventArgs.cs
- TypeContext.cs
- ConnectionsZone.cs
- Geometry.cs
- regiisutil.cs
- DirectionalLight.cs
- IntranetCredentialPolicy.cs
- OutputScopeManager.cs
- UriSection.cs
- DataViewListener.cs
- ConnectionManager.cs
- DispatcherExceptionEventArgs.cs
- MissingSatelliteAssemblyException.cs
- TextRunCacheImp.cs
- PeerName.cs
- EventWaitHandleSecurity.cs
- Renderer.cs
- ByteAnimation.cs
- DataTableClearEvent.cs
- XmlNotation.cs
- CodeIterationStatement.cs
- HtmlInputReset.cs
- AppDomainAttributes.cs
- ApplicationFileCodeDomTreeGenerator.cs
- TextMarkerSource.cs
- EventLogPermissionAttribute.cs
- BuildManager.cs
- DetailsViewModeEventArgs.cs
- ProtocolState.cs
- MetadataItemSerializer.cs
- HandledEventArgs.cs
- RadioButtonDesigner.cs
- RotateTransform.cs
- FactoryGenerator.cs
- Button.cs
- ClientType.cs
- InternalCompensate.cs
- LocalizationCodeDomSerializer.cs
- AsymmetricSignatureDeformatter.cs
- ElementAtQueryOperator.cs
- BackStopAuthenticationModule.cs
- PocoEntityKeyStrategy.cs
- DesignerDataTableBase.cs
- TextDpi.cs
- SevenBitStream.cs
- DataPointer.cs
- CancelEventArgs.cs
- HierarchicalDataBoundControl.cs
- ProjectionCamera.cs
- WorkflowTerminatedException.cs
- TargetException.cs
- ElementAction.cs
- CompilerGeneratedAttribute.cs
- ReadWriteSpinLock.cs
- Parallel.cs
- CookieProtection.cs
- FieldAccessException.cs
- MetaModel.cs
- GradientSpreadMethodValidation.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ControlFilterExpression.cs
- ControlBindingsCollection.cs
- MemberRelationshipService.cs
- ThreadExceptionEvent.cs
- ScrollPattern.cs
- ClientBuildManagerCallback.cs
- SerialReceived.cs
- TypefaceCollection.cs
- ProxyFragment.cs
- HwndHost.cs
- XmlSchemaSimpleContentRestriction.cs
- ExcCanonicalXml.cs
- _RequestCacheProtocol.cs
- HMACSHA384.cs
- ApplicationProxyInternal.cs
- AsnEncodedData.cs
- MultiTrigger.cs
- SynchronizedDispatch.cs
- PermissionListSet.cs
- TraceHandler.cs
- WindowProviderWrapper.cs
- ProfileModule.cs
- UnaryQueryOperator.cs
- WebPartDisplayMode.cs
- DesignerTransactionCloseEvent.cs
- SettingsBase.cs