Feedback

C# - WPF Markup Erweiterung für Enumerationswerte

Veröffentlicht von am 05.11.2015
(1 Bewertungen)
Hinweis: Dieses Snippet nimmt nicht am Wettbewerb teil!

Dieses Snippet ist eine Markup Erweiterung für WPF um eine Eigenschaft mit den Werten einer Enumeration zu befüllen.

Benötigte Namespaces
System
System.Windows.Markup

Verwendung
<ComboBox ItemsSource="{local:EnumSource HorizontalAlignment}"/>
GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

/// <summary>
/// Stellt eine Markup Erweiterung bereit die die Elemente einer Enumeration zurück gibt.
/// </summary>
public class EnumSource : MarkupExtension
{
    /// <summary>
    /// Erstellt eine neue Instanz der <see cref="EnumSource"/>-Klasse.
    /// </summary>
    /// <param name="enumType">Der Typ der Enumeration der verwendet werden soll.</param>
    /// <exception cref="ArgumentNullException">Wird ausgelöst, wenn <paramref name="enumType"/> <c>null</c> ist.</exception>
    /// <exception cref="NotSupportedException">Wird ausgelöst, wenn <paramref name="enumType"/> nicht der Typ einer Enumeration ist.</exception>
    public EnumSource(Type enumType)
    {
        if (enumType == null)
        {
            throw new ArgumentNullException(nameof(enumType), $"The {nameof(enumType)} parameter must be the type of an enum.");
        }
        if (!enumType.IsEnum)
        {
            throw new NotSupportedException($"The passed type in the {nameof(enumType)} parameter is not an enum");
        }

        EnumType = enumType;
    }

    /// <summary>
    /// Ruft den Enumerationstyp ab dessen Member aufgelistet werden sollen.
    /// </summary>
    public Type EnumType { get; private set; }

    /// <summary>
    /// Ruft die Member von <see cref="Enumtype"/> ab.
    /// </summary>
    /// <param name="serviceProvider">Wird in dieser Implementierung nicht benötigt.</param>
    /// <returns>Die Member von <see cref="Enumtype"/>.</returns>
    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        return Enum.GetValues(EnumType);
    }
}
Abgelegt unter XAML, Extension, Markup, Enum, Source, ItemsSource.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!