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
- XPathMessageFilterTable.cs
- NegotiateStream.cs
- PageRanges.cs
- DesignerAttributeInfo.cs
- HtmlInputCheckBox.cs
- CompositeControl.cs
- ZoneMembershipCondition.cs
- StringComparer.cs
- OdbcCommand.cs
- IconHelper.cs
- IncrementalHitTester.cs
- DictionaryBase.cs
- SelectionRangeConverter.cs
- TransactionBehavior.cs
- DataGridViewCellParsingEventArgs.cs
- Literal.cs
- CodeValidator.cs
- RemoteWebConfigurationHost.cs
- EntityModelBuildProvider.cs
- TextDocumentView.cs
- GenericIdentity.cs
- FixUpCollection.cs
- ActivityCompletionCallbackWrapper.cs
- VBCodeProvider.cs
- RequestQueryProcessor.cs
- PauseStoryboard.cs
- TraceUtils.cs
- DataBoundControlAdapter.cs
- WindowsComboBox.cs
- Attributes.cs
- SocketInformation.cs
- FlowNode.cs
- CodeNamespaceCollection.cs
- AppSettingsExpressionEditor.cs
- UpdateProgress.cs
- WebServiceEnumData.cs
- DataKeyArray.cs
- DataStorage.cs
- LinkConverter.cs
- _ConnectionGroup.cs
- typedescriptorpermission.cs
- ParserStack.cs
- EntityDataSourceDataSelection.cs
- ConfigurationErrorsException.cs
- RemoteCryptoDecryptRequest.cs
- TextViewElement.cs
- IEnumerable.cs
- XPathNavigator.cs
- XmlnsDefinitionAttribute.cs
- cache.cs
- _UriTypeConverter.cs
- GridViewSortEventArgs.cs
- BamlCollectionHolder.cs
- OciEnlistContext.cs
- MulticastDelegate.cs
- Boolean.cs
- DictionaryItemsCollection.cs
- MediaContextNotificationWindow.cs
- SrgsDocumentParser.cs
- RegisteredScript.cs
- ClientData.cs
- IndexedEnumerable.cs
- ReadOnlyCollectionBase.cs
- SoapIgnoreAttribute.cs
- __TransparentProxy.cs
- WebBrowserDocumentCompletedEventHandler.cs
- PropertyConverter.cs
- File.cs
- wgx_sdk_version.cs
- ItemChangedEventArgs.cs
- DataBoundControlHelper.cs
- TypographyProperties.cs
- DrawingContextWalker.cs
- IndentTextWriter.cs
- SinglePageViewer.cs
- BaseDataBoundControl.cs
- Drawing.cs
- ExpressionLink.cs
- HashMembershipCondition.cs
- embossbitmapeffect.cs
- XmlMapping.cs
- DataGridViewRowEventArgs.cs
- AQNBuilder.cs
- DataGridViewTopLeftHeaderCell.cs
- LogicalTreeHelper.cs
- TextTreeText.cs
- Encoder.cs
- XmlComplianceUtil.cs
- LinearGradientBrush.cs
- InfiniteIntConverter.cs
- ChtmlPageAdapter.cs
- ToolStripOverflowButton.cs
- CompilationSection.cs
- XmlnsDefinitionAttribute.cs
- Ref.cs
- SafeWaitHandle.cs
- OracleException.cs
- EdgeModeValidation.cs
- UseLicense.cs
- AppPool.cs