我试图将输入字段中的值限制为某个值。我尝试了以下。当用户输入任何大于最大限制的数字时,字段设置为 0。
但是,当用户按下退格键或尝试输入任何新数字时,应用程序会崩溃。
查看型号:
private int? getHeight = null;
public int? GetHeight
{
get { return getHeight; }
set
{
if (!getHeight.HasValue || (!getHeight.Equals(value) && value.Value <= 250))
{
getHeight = value;
}
else
{
getHeight = 0;
}
OnPropertyChanged();
}
}
看法:
heightEntry = new Entry
{
Keyboard = Keyboard.Numeric
};
heightEntry.SetBinding(Entry.TextProperty, nameof(MyViewModel.GetHeight), converter: new NullableIntConverter());
heightEntry.SetBinding(Entry.IsEnabledProperty, nameof(MyViewModel.UiElementsEnabled));
optionsGrid.Children.Add(heightEntry, 1, 1);
由于 OnPropertyChanged() 导致 App 崩溃,即当字段设置为零时,触发 OnPropertyChanged() 并且不允许再次输入输入。