Ich versuche, ein einfaches Zwei-Wege-Bindungsbeispiel zu erhalten, das mit einem Konverter arbeitet, aber sobald sich der Wert im Eintrag ändert, wenn Sie beispielsweise 1 eingeben, bleibt er in einer Endlosschleife stecken Ruft das Ende der ConvertBack-Methode auf und legt den Wert korrekt fest. Es trifft dann die ConvertBack-Methode erneut außer diesmal mit dem Wert 11, das nächste Mal wird es 111 sein und es geht weiter, bis es den Emulator abstürzt.Xamarin bildet Wertkonverter, der Endlosschleife verursacht
Auch wenn ich mit dem Debuggen aufhöre, gibt der Emulator die Nummer einfach unendlich in ein neues Suchfenster ein.
Converter:
public class StringToNullableInt : IValueConverter
{
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo language)
{
if (string.IsNullOrEmpty(value?.ToString()))
{
return null;
}
else
{
int tmp = 0;
if (Int32.TryParse(value.ToString(), out tmp))
{
return tmp;
}
else
{
return null;
}
}
}
public object Convert(object value, Type targetType, object parameter, CultureInfo language)
{
return value;
//throw new NotImplementedException();
}
}
Feld
public int? Test
{
get
{
return _test;
}
set
{
if (value != _test)
{
_test = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Test"));
}
}
}
gebundenes Feld
<Entry Text="{Binding Test, Mode=TwoWay, Converter={StaticResource cnvStringToNullableInt} }" />
I int als Beispiel verwendet, aber wenn ich es in Strings ändern bekomme ich genau die gleiche Schleife Problem. Jedes Mal, wenn ich eine Zwei-Wege-Bindung mit einem Konverter verwende, wie ich es in dem Beispiel getan habe, scheint es passiert zu sein – wolfman1001
Sie sollten Ihren neuen Code und Ihre neue XAML veröffentlichen –