Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpProfileGroupBase.cs
- XmlWrappingWriter.cs
- ProgressBarBrushConverter.cs
- InternalDispatchObject.cs
- FunctionDetailsReader.cs
- MappingItemCollection.cs
- CaretElement.cs
- LocatorManager.cs
- TextRangeEdit.cs
- SignedPkcs7.cs
- SiteMapDataSource.cs
- _PooledStream.cs
- WebPartManagerInternals.cs
- XmlAnyElementAttributes.cs
- FixedSOMTableRow.cs
- PromptEventArgs.cs
- BaseAppDomainProtocolHandler.cs
- VirtualStackFrame.cs
- CqlQuery.cs
- KeyValueConfigurationElement.cs
- WpfGeneratedKnownTypes.cs
- TemplateComponentConnector.cs
- DesignerDataTableBase.cs
- FieldToken.cs
- ObjectDataSourceSelectingEventArgs.cs
- Quad.cs
- PointIndependentAnimationStorage.cs
- FragmentQueryKB.cs
- AttachInfo.cs
- StringUtil.cs
- CanonicalFontFamilyReference.cs
- XmlDataSourceView.cs
- ImportCatalogPart.cs
- TaiwanCalendar.cs
- XPathBinder.cs
- SqlGatherProducedAliases.cs
- Pkcs7Recipient.cs
- FixedSOMLineRanges.cs
- HebrewCalendar.cs
- FixedTextPointer.cs
- AutoResetEvent.cs
- CompositeFontParser.cs
- FormViewPagerRow.cs
- PenThreadWorker.cs
- HttpHandlersSection.cs
- StringComparer.cs
- ResponseBodyWriter.cs
- SecurityPolicySection.cs
- PackagingUtilities.cs
- httpstaticobjectscollection.cs
- UpdateException.cs
- FormatException.cs
- AdapterDictionary.cs
- FlatButtonAppearance.cs
- DataGridTableCollection.cs
- CacheChildrenQuery.cs
- path.cs
- UserControlParser.cs
- BasicKeyConstraint.cs
- ArgumentOutOfRangeException.cs
- CompleteWizardStep.cs
- RightsManagementInformation.cs
- OleDbDataAdapter.cs
- DecoderFallbackWithFailureFlag.cs
- FileDialogCustomPlace.cs
- SizeLimitedCache.cs
- WebBrowserSiteBase.cs
- BindingList.cs
- ModuleBuilderData.cs
- HtmlInputReset.cs
- ApplicationFileCodeDomTreeGenerator.cs
- HtmlEncodedRawTextWriter.cs
- WindowsTokenRoleProvider.cs
- StreamInfo.cs
- RC2CryptoServiceProvider.cs
- TokenBasedSetEnumerator.cs
- StringCollection.cs
- DataGridViewTextBoxColumn.cs
- Win32.cs
- PlatformNotSupportedException.cs
- TrackingMemoryStream.cs
- ToolStripContainer.cs
- AppSettingsSection.cs
- ControlSerializer.cs
- IdentifierService.cs
- XhtmlBasicTextBoxAdapter.cs
- MediaEntryAttribute.cs
- DispatchWrapper.cs
- formatstringdialog.cs
- ControlPropertyNameConverter.cs
- TextEffect.cs
- PositiveTimeSpanValidator.cs
- MetadataItemCollectionFactory.cs
- CursorConverter.cs
- WebPartPersonalization.cs
- _TimerThread.cs
- IntegerValidatorAttribute.cs
- EventWaitHandleSecurity.cs
- WindowsHyperlink.cs
- UITypeEditor.cs