Xamarin 表单数量切换

Xamarin Forms Quantity Toggle

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

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

例如

产品价格为: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方法中,您可以通过以下代码获取数量和价格:

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,你可以看看。请随时问我任何问题。