Feedback

C# - Xamarin Forms: Regex im Markup erstellen

Veröffentlicht von am 10.03.2016
(0 Bewertungen)
Die .NET Regex Klasse besitzt keinen öffentlichen Konstruktor was das Zuweisen eines Regex in XAML erschwert.

Diese Klasse bietet einen Anfang um einfach einen Regex im XAML zu instanziieren. Beispielsweise so:

<ns:MyControl AllowedUrlRegex="{controls:Regex Regex=(?i:^http://code-13.net/)}" />


Benötigte Namespaces
System
System.Text.RegularExpressions
Xamarin.Forms.Xaml
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

/// <summary>
/// Stelllt eine Markup-Erweiterung für Xamarin.Forms für die Erstellung eines <see cref="System.Text.RegularExpressions.Regex"/> bereit.
/// </summary>
public class RegexExtension : IMarkupExtension<Regex>
{
    /// <summary>
    /// Erstellt eine neue Instanz der <see cref="RegexExtension"/>-Klasse.
    /// </summary>
    public RegexExtension() { }

    /// <summary>
    /// Erstellt eine neue Instanz der <see cref="RegexExtension"/>-Klasse unter angabe des regulären Ausdrucks.
    /// </summary>
    /// <param name="regex">Der zu verwendende reguläre Ausdruck.</param>
    public RegexExtension(string regex) : this()
    {
        this.Regex = regex;
    }

    /// <summary>
    /// Ruft den regulären Ausdruck ab oder legt diesen fest.
    /// </summary>
    public string Regex { get; set; }

    /// <summary>
    /// Ruft den regulären Ausdruck als <see cref="System.Text.RegularExpressions.Regex"/>-Instanz ab.
    /// </summary>
    /// <param name="serviceProvider">Wird ignoriert.</param>
    /// <returns>Eine <see cref="System.Text.RegularExpressions.Regex"/>-Instanz, erstellt aus <see cref="Regex"/>.</returns>
    public Regex ProvideValue(IServiceProvider serviceProvider)
    {
        return new Regex(this.Regex);
    }

    object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
    {
        return this.ProvideValue(serviceProvider);
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!