Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / ResourceReferenceExpressionConverter.cs / 1305600 / ResourceReferenceExpressionConverter.cs
//---------------------------------------------------------------------------- // // File: ResourceReferenceExpressionConverter.cs // // Description: // TypeConverter for a resource value expression // // Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Globalization; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Windows; namespace System.Windows.Markup { ////// TypeConverter for a resource value expression /// public class ResourceReferenceExpressionConverter : ExpressionConverter { ////// TypeConverter method override. /// /// /// ITypeDescriptorContext /// /// /// Type to convert from /// ////// true if conversion is possible /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return base.CanConvertFrom(context, sourceType); } ////// TypeConverter method override. /// ////// For avalon serialization this converter /// returns true for string types only if the /// target element with the resource /// dictionary for the current resource /// reference is also being serialized. Else /// it returns false and the serialization /// engine must serialize the evaluated /// value of the expression. /// /// /// ITypeDescriptorContext /// /// /// Type to convert to /// ////// true if conversion is possible /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { // Validate Input Arguments if (destinationType == null) { throw new ArgumentNullException("destinationType"); } //MarkupExtention if (destinationType == typeof(MarkupExtension)) return true; return base.CanConvertTo(context, destinationType); } ////// TypeConverter method implementation. /// /// /// ITypeDescriptorContext /// /// /// current culture (see CLR specs) /// /// /// value to convert from /// ////// value that is result of conversion /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { return base.ConvertFrom(context, culture, value); } ////// TypeConverter method implementation. /// /// /// ITypeDescriptorContext /// /// /// current culture (see CLR specs) /// /// /// value to convert from /// /// /// Type to convert to /// ////// converted value /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { // Validate Input Arguments ResourceReferenceExpression expr = value as ResourceReferenceExpression; if (expr == null) { throw new ArgumentException(SR.Get(SRID.MustBeOfType, "value", "ResourceReferenceExpression")); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } // MarkupExtension if (destinationType == typeof(MarkupExtension)) { return new DynamicResourceExtension(expr.ResourceKey); } return base.ConvertTo(context, culture, value, destinationType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // File: ResourceReferenceExpressionConverter.cs // // Description: // TypeConverter for a resource value expression // // Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Globalization; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Windows; namespace System.Windows.Markup { ////// TypeConverter for a resource value expression /// public class ResourceReferenceExpressionConverter : ExpressionConverter { ////// TypeConverter method override. /// /// /// ITypeDescriptorContext /// /// /// Type to convert from /// ////// true if conversion is possible /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return base.CanConvertFrom(context, sourceType); } ////// TypeConverter method override. /// ////// For avalon serialization this converter /// returns true for string types only if the /// target element with the resource /// dictionary for the current resource /// reference is also being serialized. Else /// it returns false and the serialization /// engine must serialize the evaluated /// value of the expression. /// /// /// ITypeDescriptorContext /// /// /// Type to convert to /// ////// true if conversion is possible /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { // Validate Input Arguments if (destinationType == null) { throw new ArgumentNullException("destinationType"); } //MarkupExtention if (destinationType == typeof(MarkupExtension)) return true; return base.CanConvertTo(context, destinationType); } ////// TypeConverter method implementation. /// /// /// ITypeDescriptorContext /// /// /// current culture (see CLR specs) /// /// /// value to convert from /// ////// value that is result of conversion /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { return base.ConvertFrom(context, culture, value); } ////// TypeConverter method implementation. /// /// /// ITypeDescriptorContext /// /// /// current culture (see CLR specs) /// /// /// value to convert from /// /// /// Type to convert to /// ////// converted value /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { // Validate Input Arguments ResourceReferenceExpression expr = value as ResourceReferenceExpression; if (expr == null) { throw new ArgumentException(SR.Get(SRID.MustBeOfType, "value", "ResourceReferenceExpression")); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } // MarkupExtension if (destinationType == typeof(MarkupExtension)) { return new DynamicResourceExtension(expr.ResourceKey); } return base.ConvertTo(context, culture, 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
- MultipleCopiesCollection.cs
- SafeEventHandle.cs
- JsonWriter.cs
- FSWPathEditor.cs
- ColumnBinding.cs
- XmlArrayItemAttribute.cs
- HashAlgorithm.cs
- SmtpAuthenticationManager.cs
- IdleTimeoutMonitor.cs
- DataGridViewImageCell.cs
- FileDataSource.cs
- SimpleBitVector32.cs
- Random.cs
- IdnElement.cs
- AutoGeneratedField.cs
- DataRowChangeEvent.cs
- XXXOnTypeBuilderInstantiation.cs
- KeyGestureValueSerializer.cs
- WpfPayload.cs
- XmlCharCheckingReader.cs
- ConsoleEntryPoint.cs
- Rect3D.cs
- XmlDigitalSignatureProcessor.cs
- UTF32Encoding.cs
- xmlsaver.cs
- DataMemberFieldConverter.cs
- ExpressionTextBoxAutomationPeer.cs
- SHA512.cs
- DiagnosticTraceSource.cs
- TextElementAutomationPeer.cs
- XPathCompileException.cs
- Base64Stream.cs
- SerializationHelper.cs
- XmlCodeExporter.cs
- LineBreakRecord.cs
- DependencyPropertyConverter.cs
- CodeVariableDeclarationStatement.cs
- WizardPanel.cs
- PropertyMapper.cs
- UniqueConstraint.cs
- RewritingSimplifier.cs
- ListViewSelectEventArgs.cs
- CheckBox.cs
- BypassElement.cs
- PropertyDescriptorCollection.cs
- dbenumerator.cs
- DbConnectionHelper.cs
- ShaderEffect.cs
- OpenTypeLayoutCache.cs
- ClientSettingsStore.cs
- NamespaceCollection.cs
- WorkflowIdleElement.cs
- CngKeyCreationParameters.cs
- TransformProviderWrapper.cs
- LineSegment.cs
- RolePrincipal.cs
- SocketStream.cs
- invalidudtexception.cs
- BinaryConverter.cs
- ManipulationCompletedEventArgs.cs
- NullableConverter.cs
- ItemsControlAutomationPeer.cs
- DictionaryContent.cs
- FixedDocument.cs
- StringConverter.cs
- System.Data_BID.cs
- CompilationRelaxations.cs
- ColorDialog.cs
- DeferredSelectedIndexReference.cs
- WsdlParser.cs
- SiteMapNodeCollection.cs
- StylusPointPropertyUnit.cs
- SkinBuilder.cs
- MaterializeFromAtom.cs
- UserControl.cs
- DBDataPermission.cs
- MediaElementAutomationPeer.cs
- SqlProviderUtilities.cs
- BitmapEffectDrawingContent.cs
- XmlAttributeAttribute.cs
- StaticResourceExtension.cs
- SetterTriggerConditionValueConverter.cs
- AutomationPeer.cs
- DataGridBoolColumn.cs
- WindowsNonControl.cs
- DesignerForm.cs
- XPathBinder.cs
- SrgsItemList.cs
- DefaultValueTypeConverter.cs
- SQLGuidStorage.cs
- DataGridViewImageCell.cs
- CacheEntry.cs
- FontEditor.cs
- NavigationPropertySingletonExpression.cs
- ReachSerializer.cs
- ColumnMap.cs
- basevalidator.cs
- ListViewItemSelectionChangedEvent.cs
- IdentityElement.cs
- RepeatButton.cs