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,你可以看看。请随时问我任何问题。
我上网看了看,但目前似乎找不到任何解决方案。
我试图在切换产品数量时简单地更新总价。
例如
产品价格为: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,你可以看看。请随时问我任何问题。