Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScrollProviderWrapper.cs
- keycontainerpermission.cs
- GeneralTransformGroup.cs
- PropertyTab.cs
- OutOfMemoryException.cs
- XmlSerializationGeneratedCode.cs
- SettingsPropertyIsReadOnlyException.cs
- ObjectAnimationUsingKeyFrames.cs
- DesignerDataParameter.cs
- UIElementAutomationPeer.cs
- SessionStateUtil.cs
- FormsAuthentication.cs
- EnumerableValidator.cs
- PriorityQueue.cs
- _SslState.cs
- Pen.cs
- OpenTypeCommon.cs
- CodeVariableReferenceExpression.cs
- LineServicesCallbacks.cs
- BooleanExpr.cs
- XmlAggregates.cs
- ParallelTimeline.cs
- MsmqHostedTransportConfiguration.cs
- AutoResizedEvent.cs
- webclient.cs
- SizeConverter.cs
- UnhandledExceptionEventArgs.cs
- OlePropertyStructs.cs
- SqlLiftIndependentRowExpressions.cs
- WebPartTransformerAttribute.cs
- FormViewRow.cs
- CodeAttachEventStatement.cs
- ToolStripDropTargetManager.cs
- ButtonChrome.cs
- DataPager.cs
- XamlSerializationHelper.cs
- SecurityCriticalDataForSet.cs
- DbInsertCommandTree.cs
- RectangleConverter.cs
- Int32CollectionConverter.cs
- login.cs
- DocumentPageHost.cs
- EventHandlerService.cs
- ParallelTimeline.cs
- XPathNavigatorReader.cs
- DbConnectionFactory.cs
- Stopwatch.cs
- RolePrincipal.cs
- SetUserLanguageRequest.cs
- CommandDevice.cs
- Int32CollectionConverter.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- RtfToXamlReader.cs
- ToolBarButtonClickEvent.cs
- ContextStack.cs
- AppDomainFactory.cs
- CommonEndpointBehaviorElement.cs
- RelationshipFixer.cs
- BroadcastEventHelper.cs
- DataGridViewAdvancedBorderStyle.cs
- UIElement.cs
- OdbcCommand.cs
- BigInt.cs
- ExceptionCollection.cs
- ColorEditor.cs
- MulticastNotSupportedException.cs
- Dispatcher.cs
- DrawingContextDrawingContextWalker.cs
- FormViewDeletedEventArgs.cs
- RemotingException.cs
- HttpValueCollection.cs
- HttpListener.cs
- AliasGenerator.cs
- GiveFeedbackEvent.cs
- EventLogTraceListener.cs
- ComponentManagerBroker.cs
- SafeFreeMibTable.cs
- DictionaryEntry.cs
- ChannelCacheDefaults.cs
- TableCellCollection.cs
- securestring.cs
- FontFamily.cs
- CompleteWizardStep.cs
- AdCreatedEventArgs.cs
- EntitySqlException.cs
- XsdCachingReader.cs
- PeerValidationBehavior.cs
- LinkLabelLinkClickedEvent.cs
- XsdValidatingReader.cs
- SignedXml.cs
- FilteredReadOnlyMetadataCollection.cs
- HtmlTitle.cs
- TagPrefixCollection.cs
- DateTimeOffsetConverter.cs
- ObjectContext.cs
- TypeUnloadedException.cs
- QueuePropertyVariants.cs
- TokenFactoryFactory.cs
- updatecommandorderer.cs
- WindowClosedEventArgs.cs