Это мой DisplayData.xaml:
<ContentPage.Content>
<StackLayout>
<ListView x:Name="RecordList"
ItemSelected="OnItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal"
HorizontalOptions="FillAndExpand"
Margin="20, 10, 20, 0" >
<Label Text="{Binding Text}"
HorizontalOptions="StartAndExpand"
TextColor="WhiteSmoke"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Entry x:Name="TextEntry"
Placeholder="hehe"
IsVisible="False"/>
<Entry x:Name="IDEntry"
Placeholder="hehe"
IsVisible="False"/>
</StackLayout>
</ContentPage.Content>
Это мой DisplayData.xaml.cs:
public partial class DisplayData : ContentPage
{
string _dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "myDatabase.db3");
SpeechRecTable _speech = new SpeechRecTable();
public DisplayData()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
var db = new SQLiteConnection(_dbPath);
RecordList.ItemsSource = db.Table<SpeechRecTable>().OrderBy(x => x.Text).ToList();
}
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
_speech = (SpeechRecTable)e.SelectedItem;
TextEntry.Text = _speech.Text;
IDEntry.Text = _speech.Id.ToString();
Device.BeginInvokeOnMainThread(async () =>
{
await Navigation.PushAsync(new RecordContent(TextEntry.Text, IDEntry.Text));
});
}
}
Когда выбран элемент списка, он выглядит так на моем RecordContent .xaml:
![enter image description here](https://i.stack.imgur.com/IcxpQ.png)
Когда я нажимаю кнопку удаления, эта запись не удаляется, этот код для удаления:
private async void BtnDelete_Clicked(object sender, EventArgs e)
{
var db = new SQLiteConnection(_dbPath);
db.Table<SpeechRecTable>().Delete(x => x.Id == _speech.Id);
await Navigation.PopAsync();
}
даже если я использую:
db.Delete<SpeechRecTable>(Id);
вместо:
db.Table<SpeechRecTable>().Delete(x => x.Id == _speech.Id);
Элемент по-прежнему не будет удален, и большинство учебных пособий, с которыми я столкнулся или руководств, имеют только одна страница просмотра с кнопкой добавления, удаления и обновления. Я пытаюсь отделить кнопку удаления и обновления, моя кнопка обновления работает просто отлично, но удаление не работает, она просто сразу выполняет это: await Navigation.PopAsyn c (); и тогда ничего не происходит.