Xamarin 条目行为和 INotifyPropertyChanged 崩溃

Xamarin entry behaviour and INotifyPropertyChanged crashes

首先,我的应用程序是多语言的,它在列表视图中进行一些数学计算。

此列表视图已绑定到带有模型的 Observable 集合。在 setter 区域内的模型中,我有 INotifyPropertyChanged 来更新 UI.

另一方面,我有一个行为 class,它将逗号转换为点。 当 phone 的语言是英语时,没有问题,但是当我将语言更改为德语时,如您所知,文化设置将逗号设置为默认分隔符,问题就开始了。入口行为和 INotifyPropertyChanged 冲突导致应用崩溃。

我该如何解决这个问题?

这是我的代码:

public class NumericValidationBehavior : Behavior<Entry>
    {

        protected override void OnAttachedTo(Entry entry)
        {
            entry.TextChanged += OnEntryTextChanged;

            base.OnAttachedTo(entry);
        }

        protected override void OnDetachingFrom(Entry entry)
        {
            entry.TextChanged -= OnEntryTextChanged;

            base.OnDetachingFrom(entry);

        }

        private static void OnEntryTextChanged(object sender, TextChangedEventArgs args)
        {


            if (!string.IsNullOrWhiteSpace(args.NewTextValue))
            {

                bool isValid = args.NewTextValue.ToCharArray().All(x => char.IsDigit(x));

                if (!isValid)
                {
                    ((Entry)sender).Text = args.NewTextValue.Replace(",", ".");
                    //if i remove this line, the app doesnt crash...
                }
            }
            else
            {
                ((Entry)sender).Text = "0";
            }
        }
    }

private double stockTotal;
public double StockTotal 
{ 
  get
  {
    return stockTotal;
  }
  set 
  {
     stockTotal = value;
     PropertyChanged("StockTotal");
    //if i remove this line, the app doesnt crash...

  }
}

视频显示了更多细节。 enter link description here

I upload the video...you can watch the problem

我将 XamarinForms 版本从 4.5 降级到 4.3.0.991221。

然后,我删除了 NumericValidationBehavior Class。 现在可以使用了。