Basta ya de buscar en internet porque has llegado al espacio perfecto, tenemos la solución que quieres pero sin complicaciones.
Solución:
Esto es lo que podrías hacer:
Esta es mi clase modelo:
public class Item
public string ItemName get; set;
public string ItemDetails get; set;
Y en mi XAML o también puede escribir esto en código, enlazar con el Command Parameter
de su plantilla de artículo:
La plantilla completa del artículo será como se muestra a continuación:
Y en tu archivo de código puedes hacer esto:
public void DeleteClicked(object sender, EventArgs e)
var item = (Xamarin.Forms.Button)sender;
Item listitem = (from itm in allItems
where itm.ItemName == item.CommandParameter.ToString()
select itm)
.FirstOrDefault- ();
allItems.Remove(listitem);
IMPORTANTE : Esto solo eliminaría el elemento de la colección enlazada. Para eliminarlo de la lista original, debe usar ObservableCollection
Aquí está el código fuente completo del escenario explicado: Manejo de eventos de control de niños en Listview usando XAMARIN.FORMS.
También el Tutorial: cómo manejar la selección de filas y eliminar el botón en la fila para ListView personalizado usando Xamarin.Forms explica la eliminación de un listview
así como.
He encontrado un enfoque similar y quiero compartirlo. Llené la lista con un ObservableCollection
. Luego llené el CommandParameter con solo CommandParameter="Binding ."
. Así que recuperé todo el Objeto. Entonces puedes lanzar el CommandParameter
a su Objeto y eliminarlo de la ObservableCollection
Lista
XAML:
CommandParameter="Binding ."
Llenando mi Lista:
savingExpensesCollection = new ObservableCollection ();
savingExpensesCollection .Add (new SavingsExpensesEntry ("1000 mAh Akku", "Dampfgarten", new DateTime (635808692400000000), 8.95));
savingExpensesCollection .Add (new SavingsExpensesEntry ("Cool-Mint Aroma", "Dampfgarten", new DateTime (635808692400000000), 3.95));
savingExpensesCollection .Add (new SavingsExpensesEntry ("Basis", "Dampfgarten", new DateTime (635808692400000000), 13.65));
savingExpensesList.ItemsSource = savingExpenses;
Controlador de eventos:
void OnDelete(object sender, EventArgs e)
var menuItem = ((MenuItem)sender);
SavingsExpensesEntry see ((SavingsExpensesEntry)menuItem.CommandParameter);
savingExpensesCollection .Remove (see);
estoy usando un MenuItem
pero es el mismo enfoque con un Button