单击 Xamarin.Forms 中的 ListView 项后完整显示详细信息

Posted

技术标签:

【中文标题】单击 Xamarin.Forms 中的 ListView 项后完整显示详细信息【英文标题】:Displaying details in full after clicking a ListView item in Xamarin.Forms 【发布时间】:2020-06-28 13:39:51 【问题描述】:

我是 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);
    

我不知道其余的该怎么做

【问题讨论】:

Xamarin 有许多现有的 ToDo 示例 - 你看过它们吗? docs.microsoft.com/en-us/samples/xamarin/xamarin-forms-samples/… 您是否设置了 ItemsSource 和 List 是否可见?如果您正在学习 Xamarin,请使用 Jason 建议的教程链接。 让我看看 【参考方案1】:

我的示例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中新建一个Master-Detail应用去研究。

第一步:

第二步:

第三步:

现在,您将看到如何实现To-Do-List功能的项目文件夹:

【讨论】:

以上是关于单击 Xamarin.Forms 中的 ListView 项后完整显示详细信息的主要内容,如果未能解决你的问题,请参考以下文章

我们如何处理 Xamarin Forms Picker 的完成按钮单击事件?

如何在单击 xamarin.forms.maps iOS c# 时更改 pin 图标

Xamarin Forms中的Android,IOS和UWP版本

更改 Xamarin.Forms 按钮单击的颜色

单击按钮上的 Xamarin.Forms 动画(Flash 背景)

Xamarin.Forms 相机控制访问 DependencyService