首页 > 解决方案 > 如何选择项目 MVVM listview - Xamarin 表单

问题描述

如何在 listview Mvvm 中选择项目我的代码不起作用

我的代码项目来源:

protected async override void OnAppearing()
    {
        base.OnAppearing();
        var allPersons = await firebaseHelper.GetAllCamps();
        lstCampus.ItemsSource = allPersons;
    }

我的代码selectedItem:

void OnItemTapped(object sender, System.EventArgs e)
    {
        if (lstCampus.SelectedItem != null)
            DisplayAlert("OnItemTapped", lstCampus.SelectedItem.ToString(), "OK");
    }

我的模型:

public class Campus
{
    public string NameCamp { get; set; }
}

我的视图模型:

public async Task<List<Campus>> GetAllCamps()
    {

        return (await firebase
          .Child("Camps")
          .OnceAsync<Campus>()).Select(item => new Campus
          {
              NameCamp = item.Object.NameCamp
          }).ToList();
    }

感谢你

标签: c#androidlistviewxamarinmvvmcross

解决方案


您可以尝试使用行为。这将帮助您:

https://www.c-sharpcorner.com/article/xamarin-forms-eventtocommand-behavior-in-mvvm-viewmodel/

https://docs.microsoft.com/en-US/xamarin/xamarin-forms/app-fundamentals/behaviors/reusable/event-to-command-behavior

之后,只需将这样的内容添加到您的列表中:

                <ListView.Behaviors>
                    <b:EventToCommandBehavior EventName="ItemTapped" Command="{Binding TappedCamp}" InputConverter="{StaticResource ItemTappedConverter}"/>
                </ListView.Behaviors>

推荐阅读