c# - 如何选择项目 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();
}
感谢你
解决方案
您可以尝试使用行为。这将帮助您:
https://www.c-sharpcorner.com/article/xamarin-forms-eventtocommand-behavior-in-mvvm-viewmodel/
之后,只需将这样的内容添加到您的列表中:
<ListView.Behaviors>
<b:EventToCommandBehavior EventName="ItemTapped" Command="{Binding TappedCamp}" InputConverter="{StaticResource ItemTappedConverter}"/>
</ListView.Behaviors>
推荐阅读
- ios - 大标题在推后最初是折叠的
- ffmpeg - ffmpeg.js 构建缺少定义的格式
- json - 使用 SuperGraph 作为库的 JSON 响应中的“数据”字段
- python - 以文本形式导出决策树
- javascript - 如何在 VS Code for JavaScript 的终端中运行函数
- java - 使用 OpenAM 和 springboot 管理用户
- java - 每次连接后都必须重新创建 Java TCP 流吗?
- javascript - 在 Jquery 自动完成中使用全局变量作为参数
- c++ - 大型数组声明上的 GCC stackoverflow
- javascript - 无法从反应上传Django中的多个图像