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
- ApplicationContext.cs
- FontSource.cs
- UnmanagedMemoryStream.cs
- ValueQuery.cs
- OletxCommittableTransaction.cs
- WorkflowRuntimeService.cs
- DiscoveryDocumentLinksPattern.cs
- SqlConnectionFactory.cs
- XmlCDATASection.cs
- ToolStripLabel.cs
- SafeMarshalContext.cs
- TrackBar.cs
- ValueSerializerAttribute.cs
- PngBitmapDecoder.cs
- StorageAssociationSetMapping.cs
- oledbmetadatacolumnnames.cs
- SspiNegotiationTokenProviderState.cs
- TextBoxDesigner.cs
- SQLInt64Storage.cs
- PageParser.cs
- DescendantBaseQuery.cs
- TraceLevelStore.cs
- LoadRetryHandler.cs
- ChameleonKey.cs
- OleDbMetaDataFactory.cs
- TreeViewItem.cs
- EntitySqlQueryCacheEntry.cs
- documentsequencetextview.cs
- oledbmetadatacolumnnames.cs
- CodeConditionStatement.cs
- DefaultPrintController.cs
- EntryWrittenEventArgs.cs
- DataGridViewRowConverter.cs
- IdleTimeoutMonitor.cs
- UpWmlPageAdapter.cs
- Help.cs
- DSASignatureDeformatter.cs
- SubMenuStyleCollection.cs
- ThicknessKeyFrameCollection.cs
- CodeAttachEventStatement.cs
- SafeLibraryHandle.cs
- BitmapEffectDrawingContextState.cs
- TemplatePropertyEntry.cs
- QuotedPrintableStream.cs
- AsymmetricAlgorithm.cs
- CodeVariableReferenceExpression.cs
- ISAPIApplicationHost.cs
- TemplateApplicationHelper.cs
- Empty.cs
- FocusChangedEventArgs.cs
- XamlSerializerUtil.cs
- SetStoryboardSpeedRatio.cs
- GC.cs
- ObjectQueryState.cs
- XmlNodeReader.cs
- SourceCollection.cs
- ListSortDescription.cs
- BasicDesignerLoader.cs
- DebugHandleTracker.cs
- MailAddressCollection.cs
- NextPreviousPagerField.cs
- KnownTypes.cs
- CheckBoxPopupAdapter.cs
- HtmlCommandAdapter.cs
- ProcessModelSection.cs
- DataContractSerializer.cs
- PathFigureCollection.cs
- BaseTypeViewSchema.cs
- GeneratedContractType.cs
- FormsAuthenticationModule.cs
- CommunicationObjectFaultedException.cs
- SessionSwitchEventArgs.cs
- CounterCreationDataConverter.cs
- ResourcePermissionBase.cs
- PropertyTabChangedEvent.cs
- EdmItemError.cs
- XmlnsCache.cs
- PageFunction.cs
- FloaterParagraph.cs
- XamlBrushSerializer.cs
- ObjectStateFormatter.cs
- MarkupCompiler.cs
- FontDriver.cs
- MdImport.cs
- MultiTouchSystemGestureLogic.cs
- ObsoleteAttribute.cs
- XmlDeclaration.cs
- IIS7WorkerRequest.cs
- BaseCAMarshaler.cs
- CqlWriter.cs
- MenuItemBindingCollection.cs
- DoubleLinkList.cs
- HttpContext.cs
- WindowsScrollBarBits.cs
- SetterBaseCollection.cs
- ErrorBehavior.cs
- Compensate.cs
- DependencySource.cs
- DebugView.cs
- NamedPipeTransportElement.cs