Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / EventSetterHandlerConverter.cs / 1305600 / EventSetterHandlerConverter.cs
// Copyright (C) Microsoft Corporation. All rights reserved. using System.ComponentModel; using System.Globalization; using System.Windows; using System.Collections.Generic; using System.Xaml; namespace System.Windows.Markup { ////// Type converter for RoutedEvent type /// public sealed class EventSetterHandlerConverter : TypeConverter { ////// Whether we can convert from a given type - this class only converts from string /// public override bool CanConvertFrom(ITypeDescriptorContext typeDescriptorContext, Type sourceType) { // We can only convert from a string and that too only if we have all the contextual information // Note: Sometimes even the serializer calls CanConvertFrom in order // to determine if it is a valid converter to use for serialization. if (sourceType == typeof(string)) { return true; } return false; } ////// Whether we can convert to a given type - this class only converts to string /// public override bool CanConvertTo(ITypeDescriptorContext typeDescriptorContext, Type destinationType) { return false; } ////// Convert a string like "Button.Click" into the corresponding RoutedEvent /// public override object ConvertFrom(ITypeDescriptorContext typeDescriptorContext, CultureInfo cultureInfo, object source) { if (typeDescriptorContext == null) { throw new ArgumentNullException("typeDescriptorContext"); } if (source == null) { throw new ArgumentNullException("source"); } IRootObjectProvider rootProvider = typeDescriptorContext.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider; if (rootProvider != null && source is String) { IProvideValueTarget ipvt = typeDescriptorContext.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; if (ipvt != null) { EventSetter setter = ipvt.TargetObject as EventSetter; string handlerName; if(setter != null && (handlerName = source as string) != null) { handlerName = handlerName.Trim(); return Delegate.CreateDelegate(setter.Event.HandlerType, rootProvider.RootObject, handlerName); } } } throw GetConvertFromException(source); } ////// Convert a RoutedEventID into a XAML string like "Button.Click" /// public override object ConvertTo(ITypeDescriptorContext typeDescriptorContext, CultureInfo cultureInfo, object value, Type destinationType) { throw GetConvertToException(value, destinationType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (C) Microsoft Corporation. All rights reserved. using System.ComponentModel; using System.Globalization; using System.Windows; using System.Collections.Generic; using System.Xaml; namespace System.Windows.Markup { ////// Type converter for RoutedEvent type /// public sealed class EventSetterHandlerConverter : TypeConverter { ////// Whether we can convert from a given type - this class only converts from string /// public override bool CanConvertFrom(ITypeDescriptorContext typeDescriptorContext, Type sourceType) { // We can only convert from a string and that too only if we have all the contextual information // Note: Sometimes even the serializer calls CanConvertFrom in order // to determine if it is a valid converter to use for serialization. if (sourceType == typeof(string)) { return true; } return false; } ////// Whether we can convert to a given type - this class only converts to string /// public override bool CanConvertTo(ITypeDescriptorContext typeDescriptorContext, Type destinationType) { return false; } ////// Convert a string like "Button.Click" into the corresponding RoutedEvent /// public override object ConvertFrom(ITypeDescriptorContext typeDescriptorContext, CultureInfo cultureInfo, object source) { if (typeDescriptorContext == null) { throw new ArgumentNullException("typeDescriptorContext"); } if (source == null) { throw new ArgumentNullException("source"); } IRootObjectProvider rootProvider = typeDescriptorContext.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider; if (rootProvider != null && source is String) { IProvideValueTarget ipvt = typeDescriptorContext.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; if (ipvt != null) { EventSetter setter = ipvt.TargetObject as EventSetter; string handlerName; if(setter != null && (handlerName = source as string) != null) { handlerName = handlerName.Trim(); return Delegate.CreateDelegate(setter.Event.HandlerType, rootProvider.RootObject, handlerName); } } } throw GetConvertFromException(source); } ////// Convert a RoutedEventID into a XAML string like "Button.Click" /// public override object ConvertTo(ITypeDescriptorContext typeDescriptorContext, CultureInfo cultureInfo, object value, Type destinationType) { throw GetConvertToException(value, destinationType); } } } // 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
- Keyboard.cs
- DiffuseMaterial.cs
- EntityParameterCollection.cs
- BrowserCapabilitiesFactoryBase.cs
- SqlCachedBuffer.cs
- Trace.cs
- ClusterRegistryConfigurationProvider.cs
- GeometryModel3D.cs
- SectionUpdates.cs
- PrintingPermissionAttribute.cs
- CroppedBitmap.cs
- ResizeBehavior.cs
- connectionpool.cs
- CompilerScope.Storage.cs
- CodeExpressionCollection.cs
- TabletCollection.cs
- HeaderedContentControl.cs
- StreamGeometry.cs
- DataSourceXmlElementAttribute.cs
- BitmapEffectGroup.cs
- TreeViewItem.cs
- DateTimeSerializationSection.cs
- ListViewHitTestInfo.cs
- RayMeshGeometry3DHitTestResult.cs
- EntityClientCacheKey.cs
- WinFormsSpinner.cs
- GenericWebPart.cs
- GiveFeedbackEvent.cs
- DataContractSerializerOperationFormatter.cs
- StylusButton.cs
- WebZone.cs
- CompilationPass2Task.cs
- ReversePositionQuery.cs
- DecodeHelper.cs
- CreateUserWizardDesigner.cs
- RenamedEventArgs.cs
- MergeFailedEvent.cs
- MulticastNotSupportedException.cs
- ToolStripSplitButton.cs
- CqlLexer.cs
- DivideByZeroException.cs
- CacheForPrimitiveTypes.cs
- AudioLevelUpdatedEventArgs.cs
- RulePatternOps.cs
- PenThread.cs
- StsCommunicationException.cs
- ViewCellRelation.cs
- TransformConverter.cs
- TextEmbeddedObject.cs
- EffectiveValueEntry.cs
- SecureUICommand.cs
- HtmlWindow.cs
- XmlQueryRuntime.cs
- BaseDataListComponentEditor.cs
- InputMethodStateTypeInfo.cs
- XmlUnspecifiedAttribute.cs
- XmlReader.cs
- ipaddressinformationcollection.cs
- VirtualDirectoryMappingCollection.cs
- WindowsListViewItemStartMenu.cs
- DbProviderConfigurationHandler.cs
- WorkflowMarkupSerializationManager.cs
- CollaborationHelperFunctions.cs
- ImageCollectionEditor.cs
- XmlExtensionFunction.cs
- MetaForeignKeyColumn.cs
- LayoutExceptionEventArgs.cs
- EventDescriptorCollection.cs
- ImageBrush.cs
- ADRoleFactoryConfiguration.cs
- HttpCookiesSection.cs
- ConstraintStruct.cs
- Interfaces.cs
- RelationshipManager.cs
- AnimationException.cs
- SamlSubject.cs
- BitmapEffectState.cs
- WaveHeader.cs
- XmlUTF8TextReader.cs
- PropertyMapper.cs
- EntityCommand.cs
- XmlDataImplementation.cs
- XPathConvert.cs
- HwndHost.cs
- VerificationException.cs
- NamespaceInfo.cs
- printdlgexmarshaler.cs
- NumberFormatter.cs
- TimeZoneInfo.cs
- HwndTarget.cs
- SqlXmlStorage.cs
- smtppermission.cs
- FrameworkElement.cs
- Shape.cs
- DataTemplate.cs
- FileClassifier.cs
- MimeParameters.cs
- NativeBuffer.cs
- DesignerActionUIStateChangeEventArgs.cs
- ProcessModelInfo.cs