Beispiel für einen Auflistungs-Editor
Aktualisiert: November 2007
In diesem Beispiel wird veranschaulicht, wie ein Steuerelement mit dem Namen ContactCollectionEditor erstellt wird, das einen benutzerdefinierten Auflistungs-Editor implementiert. Im Beispiel wird gezeigt, wie bei Verwendung eines benutzerdefinierten Auflistungs-Editors der genaue Objekttyp anzugeben ist, den ein Seitenentwickler der Auflistungseigenschaft eines Steuerelements hinzufügen kann. Sie ordnen einem Auflistungs-Editor eine Auflistungseigenschaft (oder den Typ der Eigenschaft) zu, indem Sie das EditorAttribute für die Auflistungseigenschaft des Steuerelements übernehmen.
Wenn Sie eine stark typisierte IList-Implementierung für die Auflistungseigenschaft verwenden und alle Objekte in der Auflistung vom selben Typ sind, benötigen Sie keinen benutzerdefinierten Auflistungs-Editor. In diesem Fall können Sie den integrierten CollectionEditor als Eigenschaften-Editor verwenden, da der CollectionEditor den Objekttyp vom Typ der Items-Eigenschaft der IList-Implementierung ableitet. Sie sollten eine typisierte Auflistung verwenden, wo immer dies möglich ist. Wenn Sie allerdings eine Auflistung wie ArrayList als Typ für die Auflistungseigenschaft eines Steuerelements verwenden, benötigen Sie einen benutzerdefinierten Auflistungs-Editor, um den Objekttyp der Auflistungselemente angeben zu können.
Der in diesem Beispiel beschriebene ContactCollectionEditor wird von der Contacts-Eigenschaft des QuickContacts-Steuerelements verwendet, das im Beispiel für eine Auflistungseigenschaft eines Webserversteuerelements beschrieben ist. Mit dem Editor können Objekte des Typs Contact zur Contacts-Eigenschaft über eine Benutzeroberfläche des Auflistungs-Editors hinzugefügt werden. Die ContactCollectionEditor-Klasse wird von CollectionEditor abgeleitet und überschreibt die CreateCollectionItemType-Methode, um den Contact-Typ zurückzugeben.
Wenn die Auflistungseigenschaft des Steuerelements unterschiedliche Objekttypen enthält, sollten Sie einen Auflistungs-Editor ähnlich dem im Beispiel implementieren. Allerdings sollten Sie die CreateNewItemTypes-Methode anstelle der CreateCollectionItemType-Methode überschreiben und die korrekten Elementtypen zurückgeben.
Codeauflistung für den ContactCollectionEditor
' ContactCollectionEditor.vb
Imports System
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Reflection
Namespace Samples.AspNet.VB.Controls
Public Class ContactCollectionEditor
Inherits CollectionEditor
Public Sub New(ByVal newType As Type)
MyBase.new(newType)
End Sub
Protected Overrides Function CanSelectMultipleInstances() _
As Boolean
Return False
End Function
Protected Overrides Function CreateCollectionItemType() As Type
Return GetType(Contact)
End Function
End Class
End Namespace
// ContactCollectionEditor.cs
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Reflection;
namespace Samples.AspNet.CS.Controls
{
public class ContactCollectionEditor : CollectionEditor
{
public ContactCollectionEditor(Type type)
: base(type)
{
}
protected override bool CanSelectMultipleInstances()
{
return false;
}
protected override Type CreateCollectionItemType()
{
return typeof(Contact);
}
}
}
Erstellen und Verwenden des Beispiels
Kompilieren Sie den ContactCollectionEditor-Editor mit dem QuickContacts-Steuerelement und der Contacts-Klasse, die im Beispiel für eine Auflistungseigenschaft eines Webserversteuerelements aufgelistet sind. Für die Kompilierung müssen Sie einen Verweis auf die System.Design-Assembly hinzufügen.
Weitere Informationen über das Kompilieren und Verwenden der benutzerdefinierten Beispielsteuerelemente finden Sie unter Erstellen der Beispiele für benutzerdefinierte Serversteuerelemente.
Siehe auch
Konzepte
Beispiel für eine Auflistungseigenschaft eines Webserversteuerelements
Erstellen der Beispiele für benutzerdefinierte Serversteuerelemente
Weitere Ressourcen
Entwickeln von benutzerdefinierten ASP.NET-Serversteuerelementen