Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Markup / DependencyPropertyConverter.cs / 1 / DependencyPropertyConverter.cs
/****************************************************************************\
*
* File: DependencyPropertyConverter.cs
*
* Class for converting a given DependencyProperty to and from a string
*
* Copyright (C) 2005 by Microsoft Corporation. All rights reserved.
*
\***************************************************************************/
using System;
using System.ComponentModel; // for TypeConverter
using System.Globalization; // for CultureInfo
using System.Reflection;
using MS.Utility;
using MS.Internal;
using System.Windows;
using System.ComponentModel.Design.Serialization;
using System.Windows.Documents;
namespace System.Windows.Markup
{
///
/// Class for converting a given DependencyProperty to and from a string
///
public sealed class DependencyPropertyConverter : TypeConverter
{
#region Public Methods
///
/// CanConvertFrom()
///
/// ITypeDescriptorContext
/// type to convert from
/// true if the given type can be converted, flase otherwise
public override bool CanConvertFrom(ITypeDescriptorContext context, 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) &&
(context is TypeConvertContext))
{
return true;
}
return false;
}
///
/// TypeConverter method override.
///
/// ITypeDescriptorContext
/// Type to convert to
/// true if conversion is possible
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
return false;
}
///
/// ConvertFrom() -TypeConverter method override. using the givein name to return DependencyProperty
///
/// ITypeDescriptorContext
/// CultureInfo
/// Object to convert from
/// instance of Command
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object source)
{
TypeConvertContext typeConvertContext = context as TypeConvertContext;
if (source is string && typeConvertContext != null)
{
ParserContext parserContext = typeConvertContext.ParserContext;
// Find the ownerType from the parser context (this should be generalized, but for now
// hard-coded to style & template)
Type ownerType = null;
ownerType = parserContext.TargetType;
DependencyProperty dp = XamlTypeMapper.ParsePropertyName(parserContext,
((string)source).Trim(),
ref ownerType);
return dp;
}
throw GetConvertFromException(source);
}
///
/// ConvertTo() - Serialization purposes, returns the string from Command.Name by adding ownerType.FullName
///
/// ITypeDescriptorContext
/// CultureInfo
/// the object to convert from
/// the type to convert to
/// string object, if the destination type is string
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
throw GetConvertToException(value, destinationType);
}
#endregion Public Methods
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
/****************************************************************************\
*
* File: DependencyPropertyConverter.cs
*
* Class for converting a given DependencyProperty to and from a string
*
* Copyright (C) 2005 by Microsoft Corporation. All rights reserved.
*
\***************************************************************************/
using System;
using System.ComponentModel; // for TypeConverter
using System.Globalization; // for CultureInfo
using System.Reflection;
using MS.Utility;
using MS.Internal;
using System.Windows;
using System.ComponentModel.Design.Serialization;
using System.Windows.Documents;
namespace System.Windows.Markup
{
///
/// Class for converting a given DependencyProperty to and from a string
///
public sealed class DependencyPropertyConverter : TypeConverter
{
#region Public Methods
///
/// CanConvertFrom()
///
/// ITypeDescriptorContext
/// type to convert from
/// true if the given type can be converted, flase otherwise
public override bool CanConvertFrom(ITypeDescriptorContext context, 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) &&
(context is TypeConvertContext))
{
return true;
}
return false;
}
///
/// TypeConverter method override.
///
/// ITypeDescriptorContext
/// Type to convert to
/// true if conversion is possible
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
return false;
}
///
/// ConvertFrom() -TypeConverter method override. using the givein name to return DependencyProperty
///
/// ITypeDescriptorContext
/// CultureInfo
/// Object to convert from
/// instance of Command
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object source)
{
TypeConvertContext typeConvertContext = context as TypeConvertContext;
if (source is string && typeConvertContext != null)
{
ParserContext parserContext = typeConvertContext.ParserContext;
// Find the ownerType from the parser context (this should be generalized, but for now
// hard-coded to style & template)
Type ownerType = null;
ownerType = parserContext.TargetType;
DependencyProperty dp = XamlTypeMapper.ParsePropertyName(parserContext,
((string)source).Trim(),
ref ownerType);
return dp;
}
throw GetConvertFromException(source);
}
///
/// ConvertTo() - Serialization purposes, returns the string from Command.Name by adding ownerType.FullName
///
/// ITypeDescriptorContext
/// CultureInfo
/// the object to convert from
/// the type to convert to
/// string object, if the destination type is string
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
throw GetConvertToException(value, destinationType);
}
#endregion Public Methods
}
}
// 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
- TreeNodeStyle.cs
- SamlDelegatingWriter.cs
- EnvelopedPkcs7.cs
- SmtpLoginAuthenticationModule.cs
- OpenTypeLayout.cs
- Point3DIndependentAnimationStorage.cs
- CodeMethodInvokeExpression.cs
- UniformGrid.cs
- ListViewTableCell.cs
- DbProviderConfigurationHandler.cs
- DurableInstanceProvider.cs
- TraceRecord.cs
- DictionaryTraceRecord.cs
- NativeMethods.cs
- AdapterDictionary.cs
- InitialServerConnectionReader.cs
- OracleException.cs
- OracleDataReader.cs
- ObjectDataProvider.cs
- DebugView.cs
- ISO2022Encoding.cs
- HasCopySemanticsAttribute.cs
- GB18030Encoding.cs
- WebPartZone.cs
- WebReferencesBuildProvider.cs
- XmlMapping.cs
- BlockCollection.cs
- OleDbConnection.cs
- SQLBytesStorage.cs
- LinqDataSourceInsertEventArgs.cs
- DefaultBinder.cs
- DrawingDrawingContext.cs
- MSAAWinEventWrap.cs
- ImageCodecInfo.cs
- DescendantQuery.cs
- SchemaManager.cs
- Completion.cs
- HtmlTableCell.cs
- InstanceCollisionException.cs
- DataGridViewUtilities.cs
- ToolStripSplitStackLayout.cs
- X509CertificateClaimSet.cs
- KeySpline.cs
- HttpGetServerProtocol.cs
- hresults.cs
- IgnoreSectionHandler.cs
- Baml2006ReaderSettings.cs
- HtmlTableRow.cs
- AttributeEmitter.cs
- SByteStorage.cs
- altserialization.cs
- NumberAction.cs
- DesignerSerializationVisibilityAttribute.cs
- PrincipalPermission.cs
- DomNameTable.cs
- BrowserCapabilitiesFactoryBase.cs
- ProxyWebPartManager.cs
- EventMemberCodeDomSerializer.cs
- FormsAuthenticationCredentials.cs
- GridViewRowPresenter.cs
- FrameworkElementFactoryMarkupObject.cs
- ToolBarPanel.cs
- OdbcRowUpdatingEvent.cs
- TagNameToTypeMapper.cs
- MimePart.cs
- SchemaInfo.cs
- GridViewUpdatedEventArgs.cs
- CellQuery.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- JsonSerializer.cs
- XsdDateTime.cs
- TypeHelper.cs
- DocumentAutomationPeer.cs
- SchemaCompiler.cs
- GridViewSelectEventArgs.cs
- DecimalAnimationUsingKeyFrames.cs
- TaskFileService.cs
- RevocationPoint.cs
- PageThemeParser.cs
- SerializationEventsCache.cs
- DataGridPagingPage.cs
- KeyValueSerializer.cs
- Attributes.cs
- JsonCollectionDataContract.cs
- StorageRoot.cs
- ConfigurationPropertyCollection.cs
- XamlFxTrace.cs
- TextOutput.cs
- MemberPathMap.cs
- CdpEqualityComparer.cs
- GeneralTransform.cs
- Substitution.cs
- Menu.cs
- DragDeltaEventArgs.cs
- ResourceLoader.cs
- _SslStream.cs
- ProvidePropertyAttribute.cs
- XmlSerializationReader.cs
- PolicyUtility.cs
- MetadataArtifactLoaderFile.cs