【问题标题】:Xamarin Forms Quantity ToggleXamarin 表单数量切换
【发布时间】:2020-07-30 06:25:26
【问题描述】:

我在网上查了一下,但目前似乎找不到任何解决方案。

我试图在切换产品数量时简单地更新总价。

例如。

产品价格为:$50 数量为 2 因此总价格为 100 美元

这是我的 XAML 代码:

<StackLayout Orientation="Vertical">
     <Stepper x:Name="stepper" ValueChanged="Handle_StepperValueChanged"/>
     <Label Text="{Binding Source={x:Reference stepper}, Path=Value}" HorizontalOptions="Center"/>
</StackLayout>

<ScrollView BackgroundColor="Black" HorizontalOptions="FillAndExpand">
     <Label x:Name="labelTotal" Text="{Binding ShoppingCartItemTotals}" TextColor="White" HorizontalTextAlignment="Center" FontAttributes="Bold" WidthRequest="110" />
</ScrollView>

这是我的 C# 代码:

ObservableCollection<FBProduct> fbproducts = new ObservableCollection<FBProduct>();
shoppingcartlistview.ItemsSource = fbproducts;

var producttitle = "Apple";
var productprice = "37.95";
var productimage = "Image goes here";

fbproducts.Add(new FBProduct
{
    ProductName = producttitle,
    ProductPrice = productprice,
    ProductImage = productimage
}); 

Console.WriteLine("Total Items:");

string ShoppingCartItemTotals = fbproducts.Select(a => new { Converted = Convert.ToDouble(a.ProductPrice.Replace("$", "")) }).ToList().Sum(a => a.Converted).ToString("#,0.00");

labelTotal.Text = "Total: " + ShoppingCartItemTotals;

【问题讨论】:

  • 首先,您为什么使用字符串而不是数字类型来表示价格?其次,我在您的代码中看不到任何代表数量的内容
  • 你应该更新Handle_StepperValueChanged方法中的labelTotal。
  • 谢谢杰克,我如何获得步进器的价值并乘以行产品价格?例如,如果该行的产品价格为 10 美元,步进器数量值为 2,那么我将如何获得 qty * 10 美元?

标签: c# ios xaml xamarin.forms shopping-cart


【解决方案1】:

Handle_StepperValueChanged方法中,您可以通过以下代码获取数量和价格:

private void stepper_ValueChanged(object sender, ValueChangedEventArgs e)
{
    //get qty
    double qty = e.NewValue;

    Stepper currentStepper = sender as Stepper;

    FBProduct currentProduct = currentStepper.BindingContext as FBProduct;

    //get price
    double price = Convert.ToDouble(currentProduct.ProductPrice);

    testP.ShoppingCartItemTotals = (qty * price).ToString();

}

我用您的代码写了basic demo,您可以查看一下。请随时问我任何问题。

【讨论】:

  • 非常感谢杰克!它的工作!你这个男人!有没有办法为每个产品配备多个步进器?例如,每个产品行都有一个步进器,如果您更改每个产品的数量,它会将您设置的所有总数相加?
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
相关资源
最近更新 更多