NewItemTypesAttribute – třída
Lze určit typy objektů, které může být přiřazena jako hodnotu vlastnosti nebo jako hodnotu typu vlastnosti.
Hierarchie dědičnosti
System.Object
System.Attribute
Microsoft.Windows.Design.PropertyEditing.NewItemTypesAttribute
Obor názvů: Microsoft.Windows.Design.PropertyEditing
Sestavení: Microsoft.Windows.Design.Interaction (v Microsoft.Windows.Design.Interaction.dll)
Syntaxe
'Deklarace
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Property, AllowMultiple := True)> _
Public NotInheritable Class NewItemTypesAttribute _
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Property, AllowMultiple = true)]
public sealed class NewItemTypesAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Property, AllowMultiple = true)]
public ref class NewItemTypesAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Property, AllowMultiple = true)>]
type NewItemTypesAttribute =
class
inherit Attribute
end
public final class NewItemTypesAttribute extends Attribute
Typ NewItemTypesAttribute zveřejňuje následující členy.
Konstruktory
Název | Popis | |
---|---|---|
NewItemTypesAttribute(Type) | Inicializuje novou instanci NewItemTypesAttribute Třída | |
NewItemTypesAttribute(array<Type[]) | Inicializuje novou instanci NewItemTypesAttribute Třída |
Na začátek
Vlastnosti
Název | Popis | |
---|---|---|
FactoryType | Získá nebo nastaví typ výroby přidružených k tomuto atributu. | |
TypeId | ID typu získá pro tento atribut. (Přepisuje Attribute.TypeId.) | |
Types | Získá seznam Type objektů, které tento atribut deklaruje jako platné nové položky typy. |
Na začátek
Metody
Název | Popis | |
---|---|---|
Equals | Infrastruktura. Vrátí hodnotu, která označuje, zda je zadaný objekt rovna této instance. (Zděděno z Attribute.) | |
Finalize | Umožňuje zkuste uvolnit prostředky a provádět další operace vyčištění před je převzaty systémem pro uvolnění objektu. (Zděděno z Object.) | |
GetHashCode | Vrátí kód hash pro tuto instanci. (Zděděno z Attribute.) | |
GetType | Získává Type aktuální instance. (Zděděno z Object.) | |
IsDefaultAttribute | Přepsat v odvozené třídě označuje, zda hodnota této instance je výchozí hodnota pro odvozené třídy. (Zděděno z Attribute.) | |
Match | Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda tato instance se rovná zadaný objekt. (Zděděno z Attribute.) | |
MemberwiseClone | Vytvoří kopii aktuální Object. (Zděděno z Object.) | |
ToString | Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.) |
Na začátek
Explicitní implementace rozhraní
Název | Popis | |
---|---|---|
_Attribute.GetIDsOfNames | Mapuje sadu názvů identifikátorů odeslání odpovídající sadu. (Zděděno z Attribute.) | |
_Attribute.GetTypeInfo | Načte informace o typu objektu, který lze získat informace o rozhraní typu. (Zděděno z Attribute.) | |
_Attribute.GetTypeInfoCount | Vyhledá číslo rozhraní typu informací, že objekt obsahuje (0 nebo 1). (Zděděno z Attribute.) | |
_Attribute.Invoke | Poskytuje přístup k vlastnostem a metodám vystaven objekt. (Zděděno z Attribute.) |
Na začátek
Poznámky
Použití NewItemFactory a NewItemTypesAttribute třídy rozšíření položky, které se zobrazí v seznamu typů doplňuje editor kolekce.
Použití NewItemTypesAttribute přidružit seznam typů vlastností. Obvykle může uživatel vybrat ze seznamu typů. Pokud je hodnota vlastnosti nullodkaz Null (Nothing v jazyce Visual Basic), nová instance vybraného typu je přiřazena vlastnost. Vkládá nová instance vlastností, jejichž typ je kolekce.
Pokud není zadán továrny, okno Vlastnosti "Přidat položky" UI používá k naplnění seznamu typů, které lze přidat název typu. Výchozí konstruktor na typ slouží k vytvoření instance vybraného typu.
Seznam typů může obsahovat abstraktní typy. Zobrazí abstraktní typ musí být zadán výroby.
NewItemTypesAttributelze použít několikrát na vlastnost, která umožňuje nastavení výroby více než jednu vlastnost. To je užitečné pro zobrazení různých položek v "přidat položku" seznam stejného typu. Například přidat jedno výrobní MenuItem červené pozadí a jiné nelze přidat MenuItem s černým pozadím.
Pokud je vlastnost představuje kolekci, NewItemTypesAttribute Určuje typy objektů, které lze vytvořit instance jako položky v této kolekci.
Příklady
Následující příklad kódu ukazuje, jak pomocí určit typy a odpovídající továrny NewItemTypesAttribute.
Imports System
Imports System.Collections
Imports System.Text
Imports System.Windows.Controls
Imports System.Windows
Imports Microsoft.Windows.Design.PropertyEditing
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Shapes
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Public Class ControlWithCollectionProperty
Inherits Button
Private myCollMultipleTypesNoFactory As New ArrayList()
Private myCollTypeWithFactory As New ArrayList()
Private myCollTypeWithMultipleFactories As New ArrayList()
Private myCollMultipleTypesWithFactory As New ArrayList()
Private myCollMultipleTypesInvalid As New ArrayList()
<NewItemTypesAttribute(GetType(Button), GetType(SolidColorBrush), GetType(Integer))> _
Public Property CollMultipleTypesNoFactory() As ArrayList
Get
Return myCollMultipleTypesNoFactory
End Get
Set
myCollMultipleTypesNoFactory = value
End Set
End Property
<NewItemTypesAttribute(GetType(MyType), FactoryType := GetType(MyTypeFactory))> _
Public Property CollTypeWithFactory() As ArrayList
Get
Return myCollTypeWithFactory
End Get
Set
myCollTypeWithFactory = value
End Set
End Property
<NewItemTypesAttribute(GetType(MyType), FactoryType := GetType(MyTypeAlternateFactory)), NewItemTypesAttribute(GetType(MyType), FactoryType := GetType(MyTypeFactory))> _
Public Property CollTypeWithMultipleFactories() As ArrayList
Get
Return myCollTypeWithMultipleFactories
End Get
Set
myCollTypeWithMultipleFactories = value
End Set
End Property
' The following code shows GetImage returning an
' ImageSource, Image Control, and Rectangle.
<NewItemTypesAttribute(GetType(MyType), GetType(Button), GetType(Brush), FactoryType := GetType(MyMultipleTypesFactory))> _
Public Property CollMultipleTypesWithFactory() As ArrayList
Get
Return myCollMultipleTypesWithFactory
End Get
Set
myCollMultipleTypesWithFactory = value
End Set
End Property
' The following case is not valid, because it contains
' a type that does not have a default constructor, and
' no factory is specified.
<NewItemTypesAttribute(GetType(Button), GetType(Brush), GetType(Size))> _
Public Property CollMultipleTypesInvalid() As ArrayList
Get
Return myCollMultipleTypesInvalid
End Get
Set
myCollMultipleTypesInvalid = value
End Set
End Property
End Class
using System;
using System.Collections;
using System.Text;
using System.Windows.Controls;
using System.Windows;
using Microsoft.Windows.Design.PropertyEditing;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace PropertyEditingAttributeTestControls
{
public class ControlWithCollectionProperty : Button
{
private ArrayList myCollMultipleTypesNoFactory = new ArrayList();
private ArrayList myCollTypeWithFactory = new ArrayList();
private ArrayList myCollTypeWithMultipleFactories = new ArrayList();
private ArrayList myCollMultipleTypesWithFactory = new ArrayList();
private ArrayList myCollMultipleTypesInvalid = new ArrayList();
[NewItemTypesAttribute(typeof(Button), typeof(SolidColorBrush), typeof(int))]
public ArrayList CollMultipleTypesNoFactory
{
get
{
return myCollMultipleTypesNoFactory;
}
set
{
myCollMultipleTypesNoFactory = value;
}
}
[NewItemTypesAttribute(typeof(MyType), FactoryType=typeof(MyTypeFactory))]
public ArrayList CollTypeWithFactory
{
get
{
return myCollTypeWithFactory;
}
set
{
myCollTypeWithFactory = value;
}
}
[NewItemTypesAttribute(
typeof(MyType),
FactoryType = typeof(MyTypeAlternateFactory))]
[NewItemTypesAttribute(
typeof(MyType),
FactoryType = typeof(MyTypeFactory))]
public ArrayList CollTypeWithMultipleFactories
{
get
{
return myCollTypeWithMultipleFactories;
}
set
{
myCollTypeWithMultipleFactories = value;
}
}
// The following code shows GetImage returning an
// ImageSource, Image Control, and Rectangle.
[NewItemTypesAttribute(
typeof(MyType),
typeof(Button),
typeof(Brush),
FactoryType = typeof(MyMultipleTypesFactory))]
public ArrayList CollMultipleTypesWithFactory
{
get
{
return myCollMultipleTypesWithFactory;
}
set
{
myCollMultipleTypesWithFactory = value;
}
}
// The following case is not valid, because it contains
// a type that does not have a default constructor, and
// no factory is specified.
[NewItemTypesAttribute(typeof(Button), typeof(Brush), typeof(Size))]
public ArrayList CollMultipleTypesInvalid
{
get
{
return myCollMultipleTypesInvalid;
}
set
{
myCollMultipleTypesInvalid = value;
}
}
}
}
Zabezpečení podprocesu
Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou zabezpečeny pro používání podprocesů. Zabezpečení sdílených členů pro používání podprocesů není zaručeno.
Viz také
Odkaz
Microsoft.Windows.Design.PropertyEditing – obor názvů