Code:
/ 4.0 / 4.0 / 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. 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
- OleDbInfoMessageEvent.cs
- HttpRequestTraceRecord.cs
- WCFServiceClientProxyGenerator.cs
- SQLInt16Storage.cs
- ThreadTrace.cs
- HttpClientChannel.cs
- TextServicesDisplayAttribute.cs
- LinkLabel.cs
- MembershipUser.cs
- SmiEventSink.cs
- ScriptReferenceBase.cs
- DependencyPropertyValueSerializer.cs
- ScaleTransform3D.cs
- XPathNode.cs
- BindingWorker.cs
- GenericTypeParameterBuilder.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- RecognizerBase.cs
- Timer.cs
- BoundPropertyEntry.cs
- MessagePropertyDescriptionCollection.cs
- TextDecorationCollection.cs
- ComboBoxHelper.cs
- FrameworkObject.cs
- StrongTypingException.cs
- StylusPointPropertyId.cs
- JournalNavigationScope.cs
- SystemEvents.cs
- ClientViaElement.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- WeakReadOnlyCollection.cs
- LicenseException.cs
- WorkerProcess.cs
- MemberMaps.cs
- StructuredTypeEmitter.cs
- XmlTextReaderImplHelpers.cs
- UInt16.cs
- DateTimeOffset.cs
- JsonFaultDetail.cs
- DataError.cs
- ConnectionStringSettingsCollection.cs
- DesignTimeParseData.cs
- UserPersonalizationStateInfo.cs
- NavigationPropertyEmitter.cs
- FormsAuthenticationConfiguration.cs
- FactoryId.cs
- DiscardableAttribute.cs
- DtdParser.cs
- ManagementPath.cs
- MemberDomainMap.cs
- IsolatedStorageFile.cs
- Int16Converter.cs
- COM2PictureConverter.cs
- PropertyGrid.cs
- ResumeStoryboard.cs
- RegexBoyerMoore.cs
- WebPartsPersonalizationAuthorization.cs
- AvTrace.cs
- CodeSubDirectory.cs
- SafeFileHandle.cs
- ColumnTypeConverter.cs
- TreeNodeConverter.cs
- StyleSheetDesigner.cs
- XamlSerializer.cs
- DebuggerAttributes.cs
- DocumentSequenceHighlightLayer.cs
- ControlCollection.cs
- ToolBarPanel.cs
- HtmlInputCheckBox.cs
- SafeHandle.cs
- ISFTagAndGuidCache.cs
- Accessible.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- XmlAttributeCache.cs
- SafeReversePInvokeHandle.cs
- TypeListConverter.cs
- ObjectConverter.cs
- NestedContainer.cs
- PageParser.cs
- FormViewUpdateEventArgs.cs
- CompositeActivityValidator.cs
- EventDriven.cs
- xmlsaver.cs
- UIElementPropertyUndoUnit.cs
- IdentityElement.cs
- XPathSelfQuery.cs
- QilChoice.cs
- ManifestBasedResourceGroveler.cs
- RefreshPropertiesAttribute.cs
- ToolboxItemImageConverter.cs
- SimpleTextLine.cs
- PersianCalendar.cs
- SqlCacheDependency.cs
- ScriptingWebServicesSectionGroup.cs
- SyndicationContent.cs
- MediaEntryAttribute.cs
- EdmItemError.cs
- Point3DCollectionConverter.cs
- WebPartHeaderCloseVerb.cs
- ListView.cs