У меня большая проблема.У меня есть список в Sqlite, и я хочу удалить элемент по событию menuitem clicked.код:
async void MenuItem_Clicked(object sender, EventArgs e)
{
var nahrungsmittel = _nahrungsmittel[0];
await _connection.DeleteAsync(nahrungsmittel);
_nahrungsmittel.Remove(nahrungsmittel);
}
Пока удаляется только первый объект в наблюдаемой коллекции и в БД.как я могу удалить тот, на котором я нажал?Еще немного кода, если этого недостаточно:
namespace EssenBestellen.Speisen
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class SpeisenUebersicht : ContentPage
{
private SQLiteAsyncConnection _connection;
private ObservableCollection<Nahrungsmittel> _nahrungsmittel;
public SpeisenUebersicht()
{
BindingContext = new
EssenBestellen.ViewModels.NahrungsmittelListeViewModel(new
EssenBestellen.ViewModels.PageService());
InitializeComponent();
_connection = DependencyService.Get<ISQLiteDb>().GetConnection();
}
async protected override void OnAppearing()
{
await _connection.CreateTableAsync<Nahrungsmittel>();
var nahrungsmittel = await _connection.QueryAsync<Nahrungsmittel>
("SELECT * FROM Nahrungsmittel ORDER BY NAME ASC"); //.ToListAsync();
_nahrungsmittel = new ObservableCollection<Nahrungsmittel>
(nahrungsmittel);
speisenListe.ItemsSource = _nahrungsmittel;
base.OnAppearing();
}
async void Add_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new SpeisenAdd());
}
async void MenuItem_Clicked(object sender, EventArgs e)
{
var nahrungsmittel = _nahrungsmittel[0];
await _connection.DeleteAsync(nahrungsmittel);
_nahrungsmittel.Remove(nahrungsmittel);
}
private void speisenListe_ItemSelected(object sender,
SelectedItemChangedEventArgs e)
{
(BindingContext as
EssenBestellen.ViewModels.NahrungsmittelListeViewModel).SelectNahrungsmittel(e.S
electedItem as Nahrungsmittel);
}
private void MenuItem_Clicked_1(object sender, EventArgs e)
{
DisplayAlert("Kommt Noch","noch nicht implementiert", "OK");
}
}
}
Обновление файла Xaml
<ContentPage.ToolbarItems>
<ToolbarItem Icon="plus.png" Text="Neu" Activated="Add_Clicked"/>
</ContentPage.ToolbarItems>
<StackLayout>
<ListView x:Name="speisenListe" HasUnevenRows="True" ItemsSource="{Binding Nahrungsmittels}" SelectedItem="{Binding SelectedNahrungsmittel, Mode=TwoWay}" ItemTapped="speisenListe_ItemTapped" ItemSelected="speisenListe_ItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Bearbeiten" IsDestructive="False" Clicked="MenuItem_Clicked" Command="{Binding .}" />
<MenuItem Text="Löschen" IsDestructive="True" Clicked="MenuItem_Clicked" Command="{Binding .}" />
</ViewCell.ContextActions>
<StackLayout Orientation="Horizontal" Padding="5">
<Label Text="{Binding Id}" HorizontalOptions="StartAndExpand"/>
<Label Text="{Binding Name}" TextColor="Gray" HorizontalOptions="CenterAndExpand"/>
<Label Text="{Binding Preis}" TextColor="Gray" HorizontalOptions="EndAndExpand"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>