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
- GenerateScriptTypeAttribute.cs
- log.cs
- ErrorCodes.cs
- SapiInterop.cs
- SafeTokenHandle.cs
- Adorner.cs
- DesignerLoader.cs
- ManagedIStream.cs
- CodeSubDirectoriesCollection.cs
- baseshape.cs
- ItemCheckedEvent.cs
- EmbeddedMailObjectsCollection.cs
- AuthenticationModuleElement.cs
- WarningException.cs
- Freezable.cs
- BatchParser.cs
- SettingsBindableAttribute.cs
- ObjectPersistData.cs
- FrameworkElementAutomationPeer.cs
- Attachment.cs
- ApplicationServiceHelper.cs
- DesignRelationCollection.cs
- PathFigureCollection.cs
- Accessible.cs
- Keywords.cs
- HtmlElement.cs
- RegexStringValidatorAttribute.cs
- ColorConvertedBitmap.cs
- TextProviderWrapper.cs
- PathSegmentCollection.cs
- DnsEndPoint.cs
- DataBindingCollection.cs
- LinearKeyFrames.cs
- SqlParameterizer.cs
- BaseCAMarshaler.cs
- FacetChecker.cs
- AssertFilter.cs
- ConfigUtil.cs
- Brushes.cs
- XmlDocumentType.cs
- ToolTip.cs
- streamingZipPartStream.cs
- SortAction.cs
- SapiAttributeParser.cs
- UseLicense.cs
- SqlNotificationRequest.cs
- ReceiveContext.cs
- Double.cs
- AuthenticatingEventArgs.cs
- DockPatternIdentifiers.cs
- ContentDesigner.cs
- DefaultValueConverter.cs
- PasswordBox.cs
- ApplicationInterop.cs
- AutoResetEvent.cs
- HtmlWindow.cs
- CodeDelegateCreateExpression.cs
- BaseComponentEditor.cs
- Types.cs
- Metafile.cs
- VisualBrush.cs
- TextControl.cs
- TextDecoration.cs
- DataTableReaderListener.cs
- ConnectionPointCookie.cs
- PrinterUnitConvert.cs
- NativeObjectSecurity.cs
- SamlSerializer.cs
- SoapTypeAttribute.cs
- ArgumentNullException.cs
- MulticastDelegate.cs
- SQLGuid.cs
- SerialPort.cs
- MatrixTransform3D.cs
- ProfileGroupSettings.cs
- LocatorManager.cs
- ButtonStandardAdapter.cs
- PropertyChange.cs
- SiteMapNodeItemEventArgs.cs
- EventMap.cs
- EpmContentSerializer.cs
- EncryptedKey.cs
- WarningException.cs
- DiscoveryOperationContextExtension.cs
- RedistVersionInfo.cs
- KeyFrames.cs
- WorkflowDesignerMessageFilter.cs
- ObjectViewListener.cs
- PeerNameRecord.cs
- CatalogPartChrome.cs
- XmlHelper.cs
- MatrixKeyFrameCollection.cs
- QueryCursorEventArgs.cs
- JsonReaderWriterFactory.cs
- NameValuePair.cs
- ExpressionBindingCollection.cs
- AsymmetricSignatureFormatter.cs
- NumberSubstitution.cs
- OdbcConnection.cs
- AtlasWeb.Designer.cs