The SfListView allows the user to work with prism for MVVM Framework. Steps to be followed:
- Replace your application to prism application in App.xaml file.
- Inherit App.xaml.cs from prism application instead of your application.
- Create a prism namespace library reference in xaml file of the ContentPage.
- Connect view and view model instead of binding context by registering them.
public partial class App : PrismApplication
{
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override void OnInitialized()
{
InitializeComponent();
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<MainPage, MainPageViewModel>();
}
}
<?xml version="1.0" encoding="utf-8" ?>
<prism:PrismApplication xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="clr-namespace:Prism.Unity;assembly=Prism.Unity.Forms"
x:Class="ListViewPrism.App">
</prism:PrismApplication>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
xmlns:local="clr-namespace:ListViewPrism;assembly=ListViewPrism"
xmlns:syncfusion="clr-namespace:Syncfusion.ListView.XForms;assembly=Syncfusion.SfListView.XForms"
x:Class="ListViewPrism.Views.MainPage"
Title="MainPage">
<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<syncfusion:SfListView x:Name="listView" ItemSize="70" ItemSpacing="0,0,5,0"
AutoFitMode="Height"
ItemsSource="{Binding ContactsInfo}" IsStickyHeader="True"
AllowSwiping="True" IsStickyGroupHeader="True" GroupHeaderSize="50">
</syncfusion:SfListView>
</StackLayout>
</ContentPage>
For more details, you can refer to https://xamgirl.com/prism-in-xamarin-forms-step-by-step-part-1
To know more about MVVM in ListView, please refer our documentation here