簡體   English   中英

xamarin.forms 中 Message sender 的作用是什么

[英]What is the function of Message sender in xamarin.forms

xamarin.forms 中 Message sender 的作用是什么? 在我的應用程序中,我的購物車包含列表視圖和 Grant Total 標簽。 是否可以使用消息發件人更新標簽? 我可以從我需要將它更新到視圖的 sqlite 數據庫中獲取總量。

這是我在視圖單元格中的數字選擇器索引更改事件

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;
};

計算價格方法

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 的標簽,我需要更新 e 號碼選擇器更改的總數

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");}
}

我認為更好的解決方案是我通知但問題是視圖沒有約束力

在您的情況下,綁定絕對是答案。 我認為問題在於您將string (標簽的文本)綁定到double類型的屬性。 您應該在調用SetBinding指定IValueConverterstringFormat參數。 檢查此鏈接:https ://forums.xamarin.com/discussion/19146/binding-to-integers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM