Удаление через контекстное меню
Создаю приложение список дел. Приложение из двух страниц. Первая страница - сам список. Вторая страница - страница ввода значения. Данные сохраняются в SQL. Пытаюсь сделать удаление через контекстное меню. Но выдает данную ошибку "System.ArgumentNullException: 'Value cannot be null.Parameter name: type"
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyTodoList.MainPage"
Title="Заметки">
<StackLayout>
<ListView x:Name="listView"
ItemSelected="OnListViewItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Clicked="OnDeleteCliked"
CommandParameter="{Binding .}"
Text="Delete"
IsDestructive="True"/>
</ViewCell.ContextActions>
<StackLayout Padding="16,12" Orientation="Horizontal">
<CheckBox IsChecked="{Binding Done}"
Color="Gray"/>
<Label Text="{Binding Text}"
TextColor="Black"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Button Text="+"
TextColor="Black"
HorizontalOptions="Center"
VerticalOptions="End"
Margin="15"
Clicked="OnAddClicked">
</Button>
</StackLayout>
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected override async void OnAppearing()
{
base.OnAppearing();
listView.ItemsSource = await App.Database.GetNotesAsync();
}
private async void OnAddClicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new ToDoListPage
{
BindingContext = new TodoModel()
});
}
async void OnListViewItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (e.SelectedItem != null)
{
await Navigation.PushAsync(new ToDoListPage
{
BindingContext = e.SelectedItem as TodoModel
});
}
}
//удаление
private async void OnDeleteCliked(object sender, EventArgs e)
{
var note = (TodoModel)BindingContext;
await App.Database.DeleteNoteAsync(note);
}
}
Пытался реализовать подобным методом. Ошибка ушла, но удаление не происходит.
private async void OnDeleteCliked(object sender, EventArgs e)
{
var mi = ((MenuItem)sender);
await App.Database.DeleteNoteAsync((TodoModel)mi.CommandParameter);
}