什么模式适合组合 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库玛兰。
在我的应用程序的 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 功能变得无关紧要?
如何在使用 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库玛兰。