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
- DragSelectionMessageFilter.cs
- StyleConverter.cs
- HttpHeaderCollection.cs
- MutableAssemblyCacheEntry.cs
- ProviderSettings.cs
- Int16AnimationUsingKeyFrames.cs
- CompModSwitches.cs
- ProfileEventArgs.cs
- ColorPalette.cs
- Win32SafeHandles.cs
- TransformerInfoCollection.cs
- SharedConnectionWorkflowTransactionService.cs
- BinaryMessageEncodingElement.cs
- recordstate.cs
- CrossContextChannel.cs
- ChameleonKey.cs
- XmlSecureResolver.cs
- JpegBitmapDecoder.cs
- ProfileGroupSettingsCollection.cs
- MappingSource.cs
- XmlSerializerAssemblyAttribute.cs
- HttpListenerContext.cs
- ThreadStartException.cs
- PixelShader.cs
- PopOutPanel.cs
- LinqDataSourceHelper.cs
- ReceiveActivityDesigner.cs
- FrameworkElement.cs
- TimerElapsedEvenArgs.cs
- RemotingServices.cs
- Matrix3D.cs
- EntityKeyElement.cs
- NavigationProperty.cs
- ZoneLinkButton.cs
- PersistenceException.cs
- SafeFindHandle.cs
- WindowVisualStateTracker.cs
- SelectionHighlightInfo.cs
- BackStopAuthenticationModule.cs
- TypeElementCollection.cs
- ThreadPool.cs
- FileSystemWatcher.cs
- BindingManagerDataErrorEventArgs.cs
- EditorBrowsableAttribute.cs
- ToolstripProfessionalRenderer.cs
- EditorPart.cs
- TextEditorThreadLocalStore.cs
- CodeIndexerExpression.cs
- FigureParaClient.cs
- DataGridViewBand.cs
- BrowserInteropHelper.cs
- BaseDataListPage.cs
- VisualTarget.cs
- Int32AnimationBase.cs
- ObjectDataSourceView.cs
- XmlAnyElementAttributes.cs
- InternalBufferOverflowException.cs
- DataTableCollection.cs
- SerializationEventsCache.cs
- EndOfStreamException.cs
- DataControlButton.cs
- Point3DValueSerializer.cs
- RtfNavigator.cs
- DataGridViewCellMouseEventArgs.cs
- DataGridViewHitTestInfo.cs
- HttpRequest.cs
- UpDownBaseDesigner.cs
- DataColumnCollection.cs
- TabItemAutomationPeer.cs
- InfoCardClaim.cs
- ServicePointManager.cs
- SudsParser.cs
- Rect3DConverter.cs
- Int32.cs
- SessionEndedEventArgs.cs
- GuidelineSet.cs
- HttpModuleActionCollection.cs
- ParameterRefs.cs
- DataGridViewDataConnection.cs
- CompilerErrorCollection.cs
- BulletedList.cs
- TreeNode.cs
- DataTemplate.cs
- ToolStripComboBox.cs
- EventHandlersStore.cs
- CryptoApi.cs
- FragmentQueryProcessor.cs
- WebPartEventArgs.cs
- EqualityComparer.cs
- Site.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- TextEditorThreadLocalStore.cs
- TableLayoutSettings.cs
- MetadataArtifactLoaderCompositeFile.cs
- SingleConverter.cs
- Config.cs
- Compiler.cs
- GroupLabel.cs
- MouseWheelEventArgs.cs
- EditorZoneDesigner.cs