Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ObjectPropertyMapping.cs
- DateTimeStorage.cs
- DataGridViewColumnCollectionEditor.cs
- URLEditor.cs
- CacheRequest.cs
- StorageModelBuildProvider.cs
- GridPattern.cs
- TraceContext.cs
- sqlcontext.cs
- BinaryExpressionHelper.cs
- OptimizerPatterns.cs
- HierarchicalDataBoundControlAdapter.cs
- GreenMethods.cs
- SqlNode.cs
- ExcludePathInfo.cs
- basecomparevalidator.cs
- PageBreakRecord.cs
- SqlServer2KCompatibilityAnnotation.cs
- DecoderFallbackWithFailureFlag.cs
- XPathEmptyIterator.cs
- OdbcUtils.cs
- XmlComplianceUtil.cs
- Evidence.cs
- Reference.cs
- DbConnectionHelper.cs
- DataGridRowEventArgs.cs
- FilteredSchemaElementLookUpTable.cs
- _SingleItemRequestCache.cs
- HttpFileCollection.cs
- TabOrder.cs
- ContainerCodeDomSerializer.cs
- UntypedNullExpression.cs
- WebPartCatalogAddVerb.cs
- BuilderPropertyEntry.cs
- Expressions.cs
- MailSettingsSection.cs
- updatecommandorderer.cs
- XmlArrayItemAttributes.cs
- SqlInternalConnection.cs
- CapabilitiesAssignment.cs
- EnumerableRowCollection.cs
- PathSegmentCollection.cs
- LineGeometry.cs
- TableLayoutRowStyleCollection.cs
- SystemBrushes.cs
- ObjectContextServiceProvider.cs
- ZipFileInfoCollection.cs
- StagingAreaInputItem.cs
- CodeArgumentReferenceExpression.cs
- Parallel.cs
- EditorPart.cs
- TerminateWorkflow.cs
- WebPartDescriptionCollection.cs
- hwndwrapper.cs
- SQLConvert.cs
- Odbc32.cs
- JsonWriter.cs
- CompiledQueryCacheKey.cs
- CheckoutException.cs
- BidOverLoads.cs
- ColumnResult.cs
- DataGridTextBoxColumn.cs
- TimeSpanMinutesConverter.cs
- WindowsAuthenticationEventArgs.cs
- CounterCreationData.cs
- EntityDataSourceState.cs
- FormViewUpdatedEventArgs.cs
- SafeLibraryHandle.cs
- ConfigurationManagerInternalFactory.cs
- ReadOnlyDataSource.cs
- CodePageUtils.cs
- LinkDesigner.cs
- UserControlBuildProvider.cs
- TreeNodeMouseHoverEvent.cs
- AdapterDictionary.cs
- SerializationTrace.cs
- SafeSecurityHelper.cs
- SerialPort.cs
- LoadGrammarCompletedEventArgs.cs
- WebPartConnectVerb.cs
- Scheduler.cs
- ErrorFormatterPage.cs
- IntSecurity.cs
- MemoryStream.cs
- DesignerCategoryAttribute.cs
- BigInt.cs
- Schema.cs
- KnownColorTable.cs
- RegexReplacement.cs
- ByValueEqualityComparer.cs
- MetadataFile.cs
- DataGridViewColumnCollectionDialog.cs
- ChooseAction.cs
- DynamicILGenerator.cs
- MailAddress.cs
- Qualifier.cs
- TextProperties.cs
- HttpCapabilitiesBase.cs
- ToolBarOverflowPanel.cs
- PerformanceCounter.cs