Как получить идентификатор элемента переключаемого переключателя в просмотре списка с помощью форм xamarin - PullRequest
0 голосов
/ 27 марта 2019

У меня есть просмотр списка, и все элементы просмотра списка содержат переключатель на правом конце, как показано на рисунке ниже.

Изображение просмотра списка

Когда я выбираю элемент, переключательзапускает событие Toggled.Мои коды добавляются ниже:

XAML:

 <Switch IsToggled="false"  Margin="210,2,2,2" Toggled="Switch_Toggled" />

Xaml.cs:

 private void Switch_Toggled(object sender, ToggledEventArgs e)
    {
       // I need the retail_modified_item_id of the selected item, how I can access that

    }
private void accept(object sender, EventArgs args)
    {
       // fetch all selected items and display success 
        DisplayAlert("Success", "Request Accepted and Updated", "OK");
    }

Класс модели:

namespace XamNative.Models
{

public class Human
{
    public string name { get; set; }
    public int retail_modified_item_id { get; set; }
    public double old_price { get; set; }
    public double new_price { get; set; }
}
}

Мне нужноretail_modified_item_id для всего выбранного элемента [item1, item2], когда я нажимаю кнопку подтверждения?

1 Ответ

0 голосов
/ 27 марта 2019

получите BindingContext коммутатора, и из этого получите нужный вам идентификатор

// list to hold all selected values
List<string> selected = new List<string>();

private void Switch_Toggled(object sender, ToggledEventArgs e)
{
   // I need the retail_modified_item_id of the selected item, how I can access that

   var switch = (Switch)sender;
   var human = (Human)switch.BindingContext;
   var id = human.retail_modified_item_id;

   // add/remove id from selected based on IsToggled
   if (switch.IsToggled) {
     if (!selected.Contains(id)) selected.Add(id);
   } else {
     if (selected.Contains(id)) selected.Remove(id);
   }
}
...