xamarin.forms中消息发送者的功能是什么

时间:2015-11-23 06:30:35

标签: xamarin xamarin.forms

xamarin.forms中邮件发件人的功能是什么?在我的应用程序中,我有购物车包含列表视图和授予总计标签。是否可以使用邮件发件人更新标签?我可以从我的sqlite db中获取总金额,我需要将其更新到视图。

这是我在视图单元格中的数字选择器索引更改事件

  numPicker.SelectedIndexChanged += (sender, args) =>
        {
          //  var price = _cartQuery.GetSum();
            sender = BindingContext;
        //    cm_items item = (cm_items)sender;


            if(Int32.Parse(btn_NumBtn.Text)<=1)
            {
                lbl_Price.Text = ((numPicker.SelectedIndex + 1) * (Int32.Parse(lbl_Price.Text))).ToString();
                btn_NumBtn.Text = (numPicker.SelectedIndex + 1).ToString();
            }
            else
            {
                int a = Int32.Parse(lbl_Price.Text);
                int b = Int32.Parse(btn_NumBtn.Text);
                int c = a / b;

                lbl_Price.Text = ((numPicker.SelectedIndex + 1) * c).ToString();
                btn_NumBtn.Text = (numPicker.SelectedIndex + 1).ToString();
            }

            _cartQuery.UpdatePicker((BindingContext as CartDB).Cart_Item_Id, numPicker.SelectedIndex + 1, Int32.Parse(lbl_Price.Text));
            price = _cartQuery.GetSum();
          //  App.Instance.ViewModel.TotalAmount = price;
         //   _cartDB.total = App.Instance.ViewModel.TotalAmount;
            Calculate_price();

            numPicker.IsEnabled = false;

        };

Calculate_price方法

    public  double Calculate_price()
    {
        try
        {
            var price = 0;
            price = _cartQuery.GetSum();
            App.Instance.ViewModel.TotalAmount = price;

            return price;
        }
        catch (Exception ex)
        {

            throw ex;
        }

    }

在我看来,我有一个名为grant total的标签,我需要更新电子号码选择器更改的总数

  Label lbl_amnt = new Label
        {

            //  Text = viewModel.Price.ToString(),
            // Text=CartCell.price.ToString(),
            Text = price.ToString(),
            FontSize = 18,
            FontAttributes = FontAttributes.Bold,
            TextColor = Color.FromRgb(102, 204, 102),
            VerticalOptions = LayoutOptions.CenterAndExpand,
            HorizontalOptions = LayoutOptions.EndAndExpand,
        };
        lbl_amnt.SetBinding(Label.TextProperty, "TotalAmount");

根据@Grish 的评论更新到我的帖子 在我的视图模型中,我将此TotalAmount作为属性

 public double _TotalAmount;
    public double TotalAmount
    {
        get { return _TotalAmount; }
        set { _TotalAmount = value; OnPropertyChanged("TotalAmount");}
    }

我认为更好的解决方案是我通知,但事情是视图不绑定

1 个答案:

答案 0 :(得分:0)

绑定绝对是您案例中的答案。我认为问题在于您将string(标签文本)绑定到double类型的属性。 您应在IValueConverter的通话中指定stringFormatSetBinding个参数。 检查此链接: https://forums.xamarin.com/discussion/19146/binding-to-integers