Поделиться через


ExpandableObjectConverter Класс

Определение

Предоставляет преобразователь типа для преобразования расширяемых объектов в прочие представления и обратно.

public ref class ExpandableObjectConverter : System::ComponentModel::TypeConverter
public class ExpandableObjectConverter : System.ComponentModel.TypeConverter
type ExpandableObjectConverter = class
    inherit TypeConverter
Public Class ExpandableObjectConverter
Inherits TypeConverter
Наследование
ExpandableObjectConverter
Производный

Примеры

В следующем примере кода переменная типа Margins преобразуется в строковую переменную.

String^ strM = "1,2,3,4";
System::Drawing::Printing::Margins^ m = gcnew System::Drawing::Printing::Margins( 1,2,3,4 );
Console::WriteLine( TypeDescriptor::GetConverter( strM )->CanConvertTo( System::Drawing::Printing::Margins::typeid ) );
Console::WriteLine( TypeDescriptor::GetConverter( m )->ConvertToString( m ) );
string strM="1,2,3,4";
System.Drawing.Printing.Margins  m= new System.Drawing.Printing.Margins(1,2,3,4);
Console.WriteLine(TypeDescriptor.GetConverter(strM).CanConvertTo(typeof(System.Drawing.Printing.Margins))); 
Console.WriteLine(TypeDescriptor.GetConverter(m).ConvertToString(m));
Dim strM As String
strM = "1,2,3,4"
            Dim m As New System.Drawing.Printing.Margins(1, 2, 3, 4)
Console.WriteLine(TypeDescriptor.GetConverter(strM).CanConvertTo(GetType(System.Drawing.Printing.Margins)))
Console.WriteLine(TypeDescriptor.GetConverter(m).ConvertToString(m))

В следующем примере кода показано, как использовать NotifyParentPropertyAttribute класс и ExpandableObjectConverter для создания расширяемого свойства в пользовательском элементе управления. Этот пример входит в состав более крупного примера использования класса NotifyParentPropertyAttribute.

[TypeConverter(typeof(BorderAppearanceConverter))]
public class BorderAppearance
{
    private int borderSizeValue = 1;
    private Color borderColorValue = Color.Empty;

    [Browsable(true),
    NotifyParentProperty(true),
    EditorBrowsable(EditorBrowsableState.Always),
    DefaultValue(1)]
    public int BorderSize
    {
        get
        {
            return borderSizeValue;
        }
        set
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(
                    "BorderSize",
                    value,
                    "must be >= 0");
            }

            if (borderSizeValue != value)
            {
                borderSizeValue = value;
            }
        }
    }

    [Browsable(true)]
    [NotifyParentProperty(true)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    [DefaultValue(typeof(Color), "")]
    public Color BorderColor
    {
        get
        {
            return borderColorValue;
        }
        set
        {
            if (value.Equals(Color.Transparent))
            {
                throw new NotSupportedException("Transparent colors are not supported.");
            }

            if (borderColorValue != value)
            {
                borderColorValue = value;
            }
        }
    }
}
<TypeConverter(GetType(BorderAppearanceConverter))>  _
Public Class BorderAppearance
    Private borderSizeValue As Integer = 1
    Private borderColorValue As Color = Color.Empty
    
    
    <Browsable(True), NotifyParentProperty(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(1)>  _
    Public Property BorderSize() As Integer 
        Get
            Return borderSizeValue
        End Get
        Set
            If value < 0 Then
                Throw New ArgumentOutOfRangeException("BorderSize", value, "must be >= 0")
            End If
            
            If borderSizeValue <> value Then
                borderSizeValue = value
            End If
        End Set
    End Property
    
    
    <Browsable(True), NotifyParentProperty(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(GetType(Color), "")>  _
    Public Property BorderColor() As Color 
        Get
            Return borderColorValue
        End Get
        Set
            If value.Equals(Color.Transparent) Then
                Throw New NotSupportedException("Transparent colors are not supported.")
            End If
            
            If borderColorValue <> value Then
                borderColorValue = value
            End If
        End Set
    End Property
End Class

Комментарии

Этот класс добавляет поддержку свойств объекта к методам и свойствам, предоставляемым TypeConverter. Чтобы сделать тип свойства расширяемым в PropertyGrid, укажите его TypeConverter для стандартных реализаций GetPropertiesSupported и GetProperties. Пометьте дочерние NotifyParentPropertyAttribute свойства с помощью , чтобы обеспечить правильное PropertyGrid поведение элемента управления.

Примечание

Никогда не следует обращаться к преобразователю типов напрямую. Вместо этого вызовите соответствующий преобразователь с помощью TypeDescriptor. Дополнительные сведения см. в примерах в базовом TypeConverter классе.

Дополнительные сведения о преобразователях типов см. в разделах Базовый TypeConverter класс и Практическое руководство. Реализация преобразователя типов.

Конструкторы

ExpandableObjectConverter()

Инициализирует новый экземпляр класса ExpandableObjectConverter.

Методы

CanConvertFrom(ITypeDescriptorContext, Type)

Возвращает значение, указывающее, может ли этот преобразователь выполнить преобразование объекта заданного типа в тип этого преобразователя, используя заданный контекст.

(Унаследовано от TypeConverter)
CanConvertFrom(Type)

Возвращает значение, указывающее, может ли этот преобразователь преобразовать объект заданного типа к типу этого преобразователя.

(Унаследовано от TypeConverter)
CanConvertTo(ITypeDescriptorContext, Type)

Возвращает значение, показывающее, может ли этот преобразователь преобразовать объект в заданный тип с помощью указанного контекста.

(Унаследовано от TypeConverter)
CanConvertTo(Type)

Возвращает значение, указывающее, может ли этот преобразователь выполнить преобразование данного объекта к заданному типу.

(Унаследовано от TypeConverter)
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Преобразует заданный объект в тип данного преобразователя с использованием указанного контекста и сведений о культуре.

(Унаследовано от TypeConverter)
ConvertFrom(Object)

Приводит заданное значение к типу этого преобразователя.

(Унаследовано от TypeConverter)
ConvertFromInvariantString(ITypeDescriptorContext, String)

Преобразует заданную строку к типу этого преобразователя, используя нейтральные язык и региональные параметры вместе с заданным контекстом.

(Унаследовано от TypeConverter)
ConvertFromInvariantString(String)

Преобразует заданную строку к типу этого преобразователя, используя нейтральные язык и региональные параметры.

(Унаследовано от TypeConverter)
ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Преобразует заданный текст в объект, используя заданный контекст и сведения о языке и региональных параметрах.

(Унаследовано от TypeConverter)
ConvertFromString(ITypeDescriptorContext, String)

Преобразует заданный текст в объект, используя заданный контекст.

(Унаследовано от TypeConverter)
ConvertFromString(String)

Преобразует заданный текст в объект.

(Унаследовано от TypeConverter)
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Преобразует заданный объект значения в указанный тип с использованием указанного контекста и сведений о культуре.

(Унаследовано от TypeConverter)
ConvertTo(Object, Type)

Преобразует данное значение в указанный тип, используя заданные аргументы.

(Унаследовано от TypeConverter)
ConvertToInvariantString(ITypeDescriptorContext, Object)

Преобразует указанное значение в строковое представление для нейтральных языка и региональных параметров.

(Унаследовано от TypeConverter)
ConvertToInvariantString(Object)

Преобразует указанное значение в строковое представление для нейтральных языка и региональных параметров.

(Унаследовано от TypeConverter)
ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Преобразует данное значение в заданный тип, используя заданный контекст и сведения о языке и региональных параметрах.

(Унаследовано от TypeConverter)
ConvertToString(ITypeDescriptorContext, Object)

Преобразует данное значение в строку, используя данный контекст.

(Унаследовано от TypeConverter)
ConvertToString(Object)

Преобразует указанное значение в строковое представление.

(Унаследовано от TypeConverter)
CreateInstance(IDictionary)

Повторно создает объект Object, задающий набор значений свойств для объекта.

(Унаследовано от TypeConverter)
CreateInstance(ITypeDescriptorContext, IDictionary)

Создает экземпляр типа, с которым связан этот TypeConverter, используя заданный контекст с учетом набора значений свойств для объекта.

(Унаследовано от TypeConverter)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetConvertFromException(Object)

Возвращает исключение, возникающее в случае, если невозможно выполнить преобразование.

(Унаследовано от TypeConverter)
GetConvertToException(Object, Type)

Возвращает исключение, возникающее в случае, если невозможно выполнить преобразование.

(Унаследовано от TypeConverter)
GetCreateInstanceSupported()

Возвращает значение, показывающее, требуется ли при изменении значения этого объекта вызывать метод CreateInstance(IDictionary), чтобы создать новое значение.

(Унаследовано от TypeConverter)
GetCreateInstanceSupported(ITypeDescriptorContext)

Возвращает значение, указывающее, требуется ли для изменения значения в этом объекте вызов CreateInstance(IDictionary), чтобы создать новое значение с помощью указанного контекста.

(Унаследовано от TypeConverter)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

Возвращает коллекцию свойств для типа объекта, заданного параметром значения.

GetProperties(ITypeDescriptorContext, Object)

Возвращает коллекцию свойств для типа массива, заданного параметром, используя заданный контекст.

(Унаследовано от TypeConverter)
GetProperties(Object)

Возвращает коллекцию свойств для типа массива, заданного параметром значения.

(Унаследовано от TypeConverter)
GetPropertiesSupported()

Возвращает значение, показывающее, поддерживаются ли свойства этим объектом.

(Унаследовано от TypeConverter)
GetPropertiesSupported(ITypeDescriptorContext)

Возвращает значение, показывающее, поддерживает ли свойства этот объект, используя заданный контекст.

GetStandardValues()

Возвращает коллекцию стандартных значений из контекста по умолчанию для типа данных, для которого предназначен этот преобразователь типов.

(Унаследовано от TypeConverter)
GetStandardValues(ITypeDescriptorContext)

Возвращает коллекцию стандартных значений для типа данных, для которого предназначен этот преобразователь типов при предоставлении с контекстом формата.

(Унаследовано от TypeConverter)
GetStandardValuesExclusive()

Возвращает значение, показывающее, является ли исчерпывающим списком коллекция стандартных значений, возвращаемая методом GetStandardValues().

(Унаследовано от TypeConverter)
GetStandardValuesExclusive(ITypeDescriptorContext)

Используя заданный контекст, возвращает значение, показывающее, является ли исчерпывающим списком возможных значений коллекция стандартных значений, возвращаемая методом GetStandardValues().

(Унаследовано от TypeConverter)
GetStandardValuesSupported()

Возвращает значение, показывающее, поддерживает ли объект стандартный набор значений, которые можно выбрать из списка.

(Унаследовано от TypeConverter)
GetStandardValuesSupported(ITypeDescriptorContext)

Получает значение, показывающее, поддерживает ли этот объект стандартный набор значений, которые можно выбрать из списка, используя заданную контекстную информацию.

(Унаследовано от TypeConverter)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsValid(ITypeDescriptorContext, Object)

Возвращает значение, показывающее, допустим ли для этого типа и указанного контекста данный объект значения.

(Унаследовано от TypeConverter)
IsValid(Object)

Возвращает значение, показывающее, допустим ли для этого типа данный объект значения.

(Унаследовано от TypeConverter)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
SortProperties(PropertyDescriptorCollection, String[])

Сортирует коллекцию свойств.

(Унаследовано от TypeConverter)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел