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
- ObjectDataSourceDisposingEventArgs.cs
- ImageListImageEditor.cs
- uribuilder.cs
- dbdatarecord.cs
- HttpListenerException.cs
- XamlReader.cs
- DesignerActionList.cs
- Compiler.cs
- DataGridItemEventArgs.cs
- ListItemCollection.cs
- ObjectViewFactory.cs
- ExpandoObject.cs
- DiagnosticTrace.cs
- WebHttpDispatchOperationSelector.cs
- SettingsAttributeDictionary.cs
- LexicalChunk.cs
- NumericPagerField.cs
- QueryResponse.cs
- ZipFileInfo.cs
- Unit.cs
- HtmlUtf8RawTextWriter.cs
- DataTable.cs
- BrowserInteropHelper.cs
- DbDataAdapter.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- EdgeModeValidation.cs
- HostSecurityManager.cs
- HorizontalAlignConverter.cs
- WizardSideBarListControlItemEventArgs.cs
- Style.cs
- ObjectPersistData.cs
- IPipelineRuntime.cs
- QualifiedCellIdBoolean.cs
- SmtpFailedRecipientException.cs
- HttpApplication.cs
- Decimal.cs
- HttpContextServiceHost.cs
- TypeConverterMarkupExtension.cs
- DesignerAdRotatorAdapter.cs
- CodeObject.cs
- ProjectionCamera.cs
- DataColumn.cs
- Accessible.cs
- EncodingInfo.cs
- DistributedTransactionPermission.cs
- NumberSubstitution.cs
- DispatcherExceptionFilterEventArgs.cs
- AllMembershipCondition.cs
- TaskFormBase.cs
- VisualStateGroup.cs
- WindowsListViewGroup.cs
- PropertyChangingEventArgs.cs
- DockingAttribute.cs
- PartitionedStream.cs
- SimpleApplicationHost.cs
- RenderData.cs
- ReturnEventArgs.cs
- WsdlImporterElementCollection.cs
- BamlBinaryReader.cs
- TimerTable.cs
- ExceptionUtil.cs
- sqlser.cs
- Converter.cs
- Select.cs
- _SecureChannel.cs
- PolicyImporterElementCollection.cs
- SplitterCancelEvent.cs
- TreeNodeEventArgs.cs
- HttpChannelHelpers.cs
- sqlstateclientmanager.cs
- ScriptReferenceEventArgs.cs
- UnitySerializationHolder.cs
- DbConnectionStringCommon.cs
- Expressions.cs
- DynamicValidatorEventArgs.cs
- StrokeNodeEnumerator.cs
- InputBinding.cs
- SqlNodeAnnotation.cs
- RTLAwareMessageBox.cs
- TextRangeSerialization.cs
- fixedPageContentExtractor.cs
- SafeBitVector32.cs
- DictionaryTraceRecord.cs
- SQLMoney.cs
- ResizeGrip.cs
- CodeCompiler.cs
- DataColumn.cs
- TextTreePropertyUndoUnit.cs
- DescendantOverDescendantQuery.cs
- DataControlPagerLinkButton.cs
- InheritanceContextHelper.cs
- KnownTypes.cs
- SvcMapFileLoader.cs
- XamlSerializationHelper.cs
- SoapClientProtocol.cs
- RevocationPoint.cs
- NameTable.cs
- MouseDevice.cs
- AbsoluteQuery.cs
- DataServiceHostWrapper.cs