Skip to content
This repository has been archived by the owner on Nov 2, 2021. It is now read-only.

Latest commit

 

History

History
60 lines (48 loc) · 2.19 KB

UWPRemarks.md

File metadata and controls

60 lines (48 loc) · 2.19 KB

PlatformBindings-UWP Remarks

Getting Started

To use the Platform Bindings Framework, you must first have the PlatformBindings Package installed. Then in your Application Class (App.xaml.cs), call the Bootstrapper.

PlatformBindingsBootstrapper.Initialise(true);

Due to UWP's Design, the Dispatcher isn't available yet, so you will need to attach the Dispatcher when it becomes available, such as in the OnLaunched Method.

Make sure you don't call any AppServices.UI methods before Attaching the Dispatcher.

After Attaching the Dispatcher, this is the best time to load any PlatformBindings extensions, Such as PlatformBindings-SMB.

/// <summary>
/// Invoked when the application is launched normally by the end user.  Other entry points
/// will be used such as when the application is launched to open a specific file.
/// </summary>
/// <param name="e">Details about the launch request and process.</param>
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    Frame rootFrame = Window.Current.Content as Frame;

    // Do not repeat app initialization when the Window already has content,
    // just ensure that the window is active
    if (rootFrame == null)
    {
        // Create a Frame to act as the navigation context and navigate to the first page
        rootFrame = new Frame();
        PlatformBindingsBootstrapper.AttachDispatcher(rootFrame.Dispatcher);
        Tests.Preparation.Prepare();

        rootFrame.NavigationFailed += OnNavigationFailed;

        if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
        {
            //TODO: Load state from previously suspended application
        }

        // Place the frame in the current Window
        Window.Current.Content = rootFrame;
    }

    if (e.PrelaunchActivated == false)
    {
        if (rootFrame.Content == null)
        {
            // When the navigation stack isn't restored navigate to the first page,
            // configuring the new page by passing required information as a navigation
            // parameter
            rootFrame.Navigate(typeof(MainPage), e.Arguments);
        }
        // Ensure the current window is active
        Window.Current.Activate();
    }
}