how to select item in listview Mvvm my code did't working
my code Itemsource:
protected async override void OnAppearing()
{
base.OnAppearing();
var allPersons = await firebaseHelper.GetAllCamps();
lstCampus.ItemsSource = allPersons;
}
my code selectedItem:
void OnItemTapped(object sender, System.EventArgs e)
{
if (lstCampus.SelectedItem != null)
DisplayAlert("OnItemTapped", lstCampus.SelectedItem.ToString(), "OK");
}
my model:
public class Campus
{
public string NameCamp { get; set; }
}
my view model:
public async Task<List<Campus>> GetAllCamps()
{
return (await firebase
.Child("Camps")
.OnceAsync<Campus>()).Select(item => new Campus
{
NameCamp = item.Object.NameCamp
}).ToList();
}
Thank u
You can try to use behaviours. This will help you:
https://www.c-sharpcorner.com/article/xamarin-forms-eventtocommand-behavior-in-mvvm-viewmodel/
After that just add something like this to your list:
<ListView.Behaviors>
<b:EventToCommandBehavior EventName="ItemTapped" Command="{Binding TappedCamp}" InputConverter="{StaticResource ItemTappedConverter}"/>
</ListView.Behaviors>
Use List.ItemTapped or ListView.ItemSelected event, they are both raised when an item is selected.
listview.ItemTapped += Listview_ItemTapped;
private void Listview_ItemTapped(object sender, ItemTappedEventArgs e)
{
DisplayAlert("OnItemTapped", (e.Item as Campus).NameCamp , "OK");
}
listview.ItemSelected += Listview_ItemSelected;
private void Listview_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
DisplayAlert("OnItemTapped", (e.SelectedItem as Campus).NameCamp, "OK");
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.