Ich habe eine benutzerdefinierte Ansicht mit einem benutzerdefinierten BindableProperty:Xamarin benutzerdefinierte BindableProperty mit Converter
public string Valore {
get { return (string)GetValue(ValoreProperty); }
set { SetValue(ValoreProperty, value); }
}
public static readonly BindableProperty ValoreProperty =
BindableProperty.Create(
propertyName: nameof(Valore),
returnType: typeof(string),
declaringType: typeof(VolosTimePickerView),
defaultBindingMode: BindingMode.TwoWay,
propertyChanged: ValorePropertyChanged,
propertyChanging: ValorePropertyChanging
);
In meiner XAML, da der Wert von Valore
ist ein nullable Int
ich einen Konverter wie folgt verwenden müssen:
Wie kann ich das gleiche tun, ohne Converter={StaticResource NullableConverter
in XAML-Seite, aber in Code hinter direkt auf der Eigenschaft?
Vielen Dank!
Warum brauchen Sie es eine 'BindableProperty' zu sein? Warum kann es keine reguläre Eigenschaft sein, die 'INotifyPropertyChanged' implementiert? – Greggz
Warum müssen Sie einen Konverter in Ihrem Code-Behind einstellen? Haben Sie in Erwägung gezogen, eine Nullable-Int BindableProperty verfügbar zu machen und dann im ValorePropertyChanged-Ereignishandler den Wert einer regulären String-Eigenschaft zu aktualisieren? In diesem Fall benötigen Sie keinen Konverter und die Logik wird in ContentView implementiert. Stattdessen, wenn Sie wirklich wollen, um Konverter von Code-behind Set versuchen, schauen Sie hier https://forums.xamarin.com/discussion/18849/how-do-i-use-ivalueconverter – user2297037