什么模式适合组合 DataSource、Prism 6 和 Xamarin.Forms.Behavior?

What pattern is appropriate for combining a DataSource, Prism 6, and a Xamarin.Forms.Behavior?

在我的应用程序的 v1 中,我使用异步 REST 服务以 Xamarin 形式加载 ListView 的内容,并使用 Prism 绑定视图和 ViewModel。

我想通过 Xamarin.Forms 行为中实现的一些功能来增强 GUI,这是我第一次尝试将 this Syncfusion demo 合并到我的 Prism 应用程序中。

我当前的代码 (v1) 如下所示:(注意 REST 调用

    public MyPeopleListViewModel(INavigationService navigationService, IEventAggregator ea) : base(navigationService, ea)
    {
        Title = "Contacts";

        tapCommand = new Command<Syncfusion.ListView.XForms.ItemTappedEventArgs>(OnTapped);
        loadedCommand = new Command<SfListView>(OnListViewLoaded);
        swipeImageCommand = new Command<Models.TrustedContactItem>(OnSwipeImageTapped);
        swipeCommand = new Command<SwipingEventArgs>(OnSwipeCommand);

        MyContactsList = new ObservableCollection<Models.TrustedContactItem>();

        // THIS PART IS RELEVANT TO THE Whosebug QUESTION
        LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommandAsync());

        _navigationService = navigationService;
    }

...上面注释了最重要的部分

我的问题是如何正确引用 behavior 中的行为?

行为是否会自动使将视图和视图模型连接在一起的 Prism AutoBinding 功能变得无关紧要?

... larger image here

如何在使用 Prism 时实现加载此视图的行为?

我们想让您知道,在使用 Prism 时,不必为 ViewModel class 创建新实例,因为它已经与 MainPage 一起在 App.Xaml.cs 中注册。因此,在 Behavior class 中,您可以在展开或折叠 ItemTapped 事件中的项目 [Accordion like view] 时从 SfListView 的 BindingContext 获取 ViewModel 实例。

更详细的可以参考下面的UG文档

https://help.syncfusion.com/xamarin/sflistview/mvvm#listview-with-prism-framework

为了您的帮助,我们附上了修改后的示例,您可以从下面的 link.

下载它

示例 link:http://www.syncfusion.com/downloads/support/directtrac/216438/ze/SfListViewSample-1851048626

您可以从指定的 URL 获取和加载 SFListView 中的项目。由于我们没有任何特定的 REST 服务可用,我们建议您按照下面给出的过程 link 来实现您的要求。

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/consuming/rest

您可以通过从在线服务器获取数据来将更多项目加载到集合中。您可以参考以下文档link了解在 SfListView 中按需加载更多项目的过程。

https://help.syncfusion.com/xamarin/sflistview/loadmore

如果您需要更多详细信息,请告诉我们。

此致,
G.Muthu库玛兰。