4 Stimmen

Erstellen eines benutzerdefinierten Sichtbarkeitskonverters

Ich versuche, einen benutzerdefinierten Konverter für mein MvvmCross-Projekt zu erstellen. Ich leite von MvxBaseVisibilityValueConverter ab und implementiere einfach die Konvertierungsmethode.

Muss ich auch plattformspezifische Projekte implementieren oder gibt es eine Möglichkeit, die plattformspezifischen Sichtbarkeits-Plugins wiederzuverwenden?

5voto

Stuart Punkte 66386

Ich habe in den letzten Tagen ValueConverters dokumentiert - siehe https://github.com/slodge/MvvmCross/wiki/Value-Converters

Ich habe gerade diesen Beispiel-Custom-Visibility-ValueConverter zum Artikel hinzugefügt:


Wenn Sie Ihre eigenen Sichtbarkeits-ValueConverter erstellen müssen, können Ihnen die Basisklassen MvxBaseVisibilityValueConverter und MvxBaseVisibilityValueConverter dabei helfen - z.B.:

public class SayPleaseVisibilityValueConverter : MvxBaseVisibilityValueConverter
{
    protected override MvxVisibility Convert(string value, object parameter, CultureInfo culture)
    {
        return (value == "Please) ? MvxVisibility.Visible : MvxVisibility.Collapsed;
    }
}

Bei diesem Ansatz konvertiert die Plugin-Basisklasse den MvxVisibility zur Laufzeit in einen geeigneten nativen Wert - sodass Sie nur eine solche Klasse zu Ihrem Kern-PCL-Projekt hinzufügen müssen - Sie müssen keine nativen Versionen der Klasse hinzufügen - stattdessen kümmert sich die Basisklasse des Plugins um die Konvertierung von MvxVisibility -> nativer Sichtbarkeit.


Abgesehen davon> zusätzlich zur Unterstützung des Visibility Enums aus dem Plugin haben kürzliche 'Tibet'-Binding-Änderungen auch benutzerdefinierte Visible Binding-Eigenschaften auf allen Plattformen hinzugefügt - diese sind nur bools also viel einfacher zu verwenden - sie sollten 'einfach funktionieren' auf iOS und Android, auf Windows-Plattformen funktionieren sie jedoch nur, wenn Sie zum "Tibet" mvx:Bi.nd Bindungsstil wechseln (also nicht jedermanns bevorzugter Ansatz!)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X