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
- PageRanges.cs
- AspCompat.cs
- RadioButton.cs
- ConfigurationManagerHelperFactory.cs
- NativeMethods.cs
- XamlStyleSerializer.cs
- SubMenuStyle.cs
- ReflectionTypeLoadException.cs
- SystemIPInterfaceStatistics.cs
- WebReferencesBuildProvider.cs
- MobileControlsSectionHandler.cs
- XmlHierarchicalEnumerable.cs
- Label.cs
- DocumentReferenceCollection.cs
- DropShadowBitmapEffect.cs
- ApplyTemplatesAction.cs
- BodyWriter.cs
- XmlAtomicValue.cs
- GetMemberBinder.cs
- DrawingImage.cs
- MemberPath.cs
- M3DUtil.cs
- regiisutil.cs
- LogExtentCollection.cs
- DatePickerDateValidationErrorEventArgs.cs
- EventSetter.cs
- SerializeAbsoluteContext.cs
- WindowsProgressbar.cs
- TdsParserSafeHandles.cs
- ListItemCollection.cs
- MemberDomainMap.cs
- WindowsStatic.cs
- PlanCompilerUtil.cs
- ManualResetEvent.cs
- TransformGroup.cs
- DataBinder.cs
- DependencyPropertyDescriptor.cs
- NonClientArea.cs
- SqlEnums.cs
- SymLanguageVendor.cs
- NullRuntimeConfig.cs
- ValidateNames.cs
- OneWayChannelFactory.cs
- Scene3D.cs
- CallbackBehaviorAttribute.cs
- CommandEventArgs.cs
- OleDbCommand.cs
- HtmlControl.cs
- QuotedPrintableStream.cs
- TemplateBindingExtensionConverter.cs
- recordstatescratchpad.cs
- AsyncCodeActivityContext.cs
- HttpTransportSecurity.cs
- SequenceRange.cs
- FormsAuthenticationUserCollection.cs
- MetadataImporterQuotas.cs
- _ChunkParse.cs
- NameValuePair.cs
- UIHelper.cs
- WebPartDisplayMode.cs
- RegisteredScript.cs
- PopupControlService.cs
- CharEntityEncoderFallback.cs
- EditorZoneBase.cs
- CharacterBufferReference.cs
- WmpBitmapEncoder.cs
- RegexCaptureCollection.cs
- ProcessModelInfo.cs
- PeerOutputChannel.cs
- CachedPathData.cs
- MailAddress.cs
- XPathNavigatorKeyComparer.cs
- ExpressionParser.cs
- Msec.cs
- ProcessHostConfigUtils.cs
- DataProtectionSecurityStateEncoder.cs
- FormViewRow.cs
- SHA512Managed.cs
- SendMessageRecord.cs
- ServiceManager.cs
- TrackingStringDictionary.cs
- MonthCalendarDesigner.cs
- coordinator.cs
- shaperfactory.cs
- TypeConverterAttribute.cs
- Bitmap.cs
- QuadraticBezierSegment.cs
- SmiEventSink_DeferedProcessing.cs
- OleDbCommand.cs
- ExpandSegmentCollection.cs
- Camera.cs
- Validator.cs
- XmlSchemaSimpleContentRestriction.cs
- EntityDataSourceDataSelection.cs
- EntitySetBase.cs
- BitmapEffectInput.cs
- HtmlToClrEventProxy.cs
- BlockCollection.cs
- ReaderWriterLock.cs
- DataFormats.cs