2016-11-22 4 views
0

Я пытаюсь сделать приложение с использованием Xamarin Forms, в котором есть меню (с помощью ListView) и рядом с каждым блюдом, есть степпер и цена.Xamarin Forms ListView Шаговое переплетение

В конце концов, когда пользователь закончил решать, какие блюда он хочет и сколько из них, я хочу подсчитать общую цену, но я понятия не имею, как это сделать.

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="Eba_face.MenuPage" 
      Title="Menu"> 
    <Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> 
    <ListView x:Name="listview" 
       HasUnevenRows="True" 
       VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
      <StackLayout Orientation="Horizontal" Padding="5"> 


       <StackLayout Orientation="Vertical"> 
       <Image x:Name="image" Source="{Binding Image}" WidthRequest="75" HeightRequest="75"/> 
       <Label Text="{Binding Name}" FontAttributes="Bold"/> 
       </StackLayout> 

       <StackLayout Orientation="Vertical"> 
       <Label Text="{Binding Weight, StringFormat='Weight {0}'}"/> 
       <Label Text="{Binding Price}" TextColor="Gray"/> 
       </StackLayout> 

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


      </StackLayout> 
      </ViewCell> 
     </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
    <StackLayout Orientation="Vertical" VerticalOptions="End" HorizontalOptions="Center"> 
     <Label x:Name="totalPriceLabel" Text="Total Price:" HorizontalOptions="Center"/> 
     <Button Text="Proceed to finish the order" /> 

    </StackLayout> 

    </Grid> 
</ContentPage> 

ответ

0

Добавить запись выбранное событие в ListView

<ListView ItemSelected="OnSelection"> 

В коде позади:

void OnSelection (object sender, SelectedItemChangedEventArgs e) 
{ 

    if (e.SelectedItem == null) 
    { 
     return;  
    } 
    var yourBindindingObject= (listView.ItemsSource as List<YourBindindingObject>).IndexOf(e.SelectedItem as YourBindindingObject); 
    int price = yourBindindingObject.Price; 
    AllPrice +=price; 
} 

Но я думаю, что вам нужно Multi-select ListView

Смежные вопросы