Бөлісу құралы:


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(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))

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

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

    [Browsable(true),
    NotifyParentProperty(true),
    EditorBrowsable(EditorBrowsableState.Always),
    DefaultValue(1)]
    public int BorderSize
    {
        get => 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 => 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)

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

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