![](/img/trans.png)
[英]Getting current item by clicking button within a ListView (Xamarin.Forms)
[英]Displaying details in full after clicking a ListView item in Xamarin.Forms
我是 xamarin 表单的新手,我正在尝试创建一个简单的待办事项列表应用程序。 在 ListView 上单击某个项目后,我想在新页面上显示该项目的完整详细信息,但我不知道该怎么做。 我有一个名为 ToDoList 的类,其中包含用于字符串任务和日期的 get 和 set 方法。 在 XAML 中,我有一个名为 TaskView 的列表视图,在 XAML.cs 页面中,我有一个 ItemTapped 方法,其中包含以下内容:
private async void TaskView_ItemTapped(object sender, ItemTappedEventArgs e)
{
var details = e.Item as ToDoList;
await Navigation.PushAsync(new ToDoDetails()).ConfigureAwait(false);
}
我不知道剩下的怎么办
我的示例OnItemSelected
方法如下:
async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
{
var item = args.SelectedItem as Item;
if (item == null)
return;
await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item)));
// Manually deselect item.
ItemsListView.SelectedItem = null;
}
当导航到ItemDetailPage.cs
:
public partial class ItemDetailPage : ContentPage
{
ItemDetailViewModel viewModel;
public ItemDetailPage(ItemDetailViewModel viewModel)
{
InitializeComponent();
BindingContext = this.viewModel = viewModel;
}
public ItemDetailPage()
{
InitializeComponent();
var item = new Item
{
Text = "Item 1",
Description = "This is an item description."
};
viewModel = new ItemDetailViewModel(item);
BindingContext = viewModel;
}
} public partial class ItemDetailPage : ContentPage
{
ItemDetailViewModel viewModel;
public ItemDetailPage(ItemDetailViewModel viewModel)
{
InitializeComponent();
BindingContext = this.viewModel = viewModel;
}
public ItemDetailPage()
{
InitializeComponent();
var item = new Item
{
Text = "Item 1",
Description = "This is an item description."
};
viewModel = new ItemDetailViewModel(item);
BindingContext = viewModel;
}
}
顺便说一下,实现ToDoList应用程序的简单方法是,您可以在 Visual Studio 2019 中创建一个新的主从应用程序来研究它。
步骤1 :
第二步 :
第三步:
现在,您将看到如何实现 To-Do-List 功能的项目文件夹:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.