Ich habe mir seit Donnerstag den Kopf über dieses kleine Problem zerbrochen und bin einer Antwort immer noch nicht näher gekommen als damals.
Ich habe eine Benutzersteuerung, die eine Eigenschaft wie diese hat:
/// <summary>
/// Gets or sets the media types.
/// </summary>
/// <value>The media types.</value>
public List<MediaType> MediaTypesFilter { get; set; }
MediaType ist eine Aufzählung, die None, PDF, Image, etc. enthält.
Ich möchte die Medientypen des Benutzerelements in der Entwurfszeit festlegen können (mit Intellisense), z. B:
<CMS:MediaPicker ID="MediaPicker runat="server" MediaTypesFilter="PDF, Image">
oder vielleicht ist es wahrscheinlicher, dass es zu etwas wie diesem führt:
<CMS:MediaPicker ID="MediaPicker" runat="server">
<MediaTypesFilter>
<MediaType>PDF</MediaType>
<MediaType>Image</MediaType>
</MediaTypesFilter>
</CMS:MediaPicker>
Ich denke, ich muss Attribute auf die Eigenschaft, wie DesignerSerializationVisbility, usw. verwenden, aber ich kann es nicht herausfinden. Ich habe über CollectionEditors gelesen, und was ich gelesen habe schlägt vor, dass die Standard-CollectionEditor in der Lage sein sollte, dies zu behandeln, so ich glaube nicht, dass ich eine benutzerdefinierte CollectionEditor erstellen müssen. Das nächste, was ich bisher bekommen habe, war eine innere Eigenschaft ohne die Möglichkeit, die Medientypen festzulegen. Ich kann anscheinend keine Beispiele für Enum-Listen als Eigenschaften finden, die zur Entwurfszeit verwendet werden. Kann mir jemand die richtige Richtung weisen oder mir ein Beispielcode zeigen, der das tut, was ich zu tun versuche?
Für jetzt habe ich mit einem Komma getrennte Zeichenfolge beendet, und wird nur aufgeteilt es heraus in eine Liste programmgesteuert, wenn ich es brauche, aber dies bedeutet keine Intellisense zur Designzeit, die saugt.