Я работаю над Xamarin.Forms в C #. Мой ListView способен отображать данные из базы данных. Я также добавил MenuItem
с обработчиком события клика в коде позади. Когда я удерживаю, чтобы удалить ( Android ) элемент, MenuItem_Clicked
вызывается и _students
обновляется (мой выбранный элемент был удален), но мой ListView по-прежнему не обновляется.
Мой вид:
<ListView x:Name="listStudents" Refreshing="listStudents_Refreshing"
IsPullToRefreshEnabled="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Delete" Clicked="MenuItem_Clicked" CommandParameter="{Binding .}" />
</ViewCell.ContextActions>
<StackLayout Padding="20">
<Label Text="{Binding Name}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Код:
private ObservableCollection<Student> _students;
public ListView_SearchBar()
{
InitializeComponent();
var _students = SQLite_DB.SeedStudentData();
_students = new ObservableCollection<Student>(_students);
listStudents.ItemsSource = _students;
}
private void MenuItem_Clicked(object sender, EventArgs e)
{
listStudents.IsRefreshing = true;
_students.Remove((sender as MenuItem).CommandParameter as Student);
listStudents.ItemsSource = null;
listStudents.ItemsSource = _students;
listStudents.IsRefreshing = false;
return;
}