2X faster development
The ultimate Xamarin UI toolkit to boost your development speed.
The SfDataForm allows you to work with Prism framework. To achieve this, follow these steps: Step 1: Install the Prism Unity Forms NuGet package in your shared code project. Step 2: Inherit the App.xaml and App.xaml.cs files from PrismApplication instead of Application. XAML <prism:PrismApplication xmlns:prism="clr-namespace:Prism.Unity;assembly=Prism.Unity.Forms" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DataFormXamarin.App"> <Application.Resources> </Application.Resources> </prism:PrismApplication> C# public partial class App : PrismApplication { public App(IPlatformInitializer initializer = null) : base(initializer) { } protected override async void OnInitialized() { InitializeComponent(); await NavigationService.NavigateAsync("DataFormPage"); } protected override void RegisterTypes(IContainerRegistry containerRegistry) { } } Step 3: Add platform initializers to each cross-platform project. Create a new class that implements IPlatformInitializer and pass it to the LoadApplication method on each platform. Android public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new App(new AndroidInitializer())); } } public class AndroidInitializer : IPlatformInitializer { public void RegisterTypes(IContainerRegistry containerRegistry) { // Register any platform specific implementations } } iOS public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate { // // This method is invoked when the application has loaded and is ready to run. In this // Method you should instantiate the window, load the UI into it and then make the window // Visible // // You have 17 seconds to return from this method, or iOS will terminate your application // public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); SfDataFormRenderer.Init(); LoadApplication(new App(new iOSInitializer())); return base.FinishedLaunching(app, options); } public class iOSInitializer : IPlatformInitializer { public void RegisterTypes(IContainerRegistry containerRegistry) { // Register any platform specific implementations } } } UWP public sealed partial class MainPage { public MainPage() { this.InitializeComponent(); LoadApplication(new DataFormXamarin.App(new UwpInitializer())); } } public class UwpInitializer : IPlatformInitializer { public void RegisterTypes(IContainerRegistry containerRegistry) { // Register any platform specific implementations } } Step 4: In App.xaml.cs file, register the View and respective ViewModel pages. protected override void RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.RegisterForNavigation<DataFormPage, DataFormViewModel>(); } Step 5: Bind data to the DataForm’s DataObject property without mentioning the binding context. <dataForm:SfDataForm x:Name="dataForm" LayoutOptions="TextInputLayout" DataObject="{Binding ContactsInfo}"/> Download the sample from GitHub.
|
2X faster development
The ultimate Xamarin UI toolkit to boost your development speed.
This page will automatically be redirected to the sign-in page in 10 seconds.