From 4ecca2bb53fa4107ae1611d1a874eee14dc20145 Mon Sep 17 00:00:00 2001 From: Connor Laderer Date: Wed, 24 May 2017 22:08:33 -0400 Subject: [PATCH] Added overload of Start for AppBuilderBase This will allow for easy use of Dependency Injection with Microsoft.Extensions.DependencyInjection the mainWindow can resolve any constructor objects it may have. --- src/Avalonia.Controls/AppBuilderBase.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Avalonia.Controls/AppBuilderBase.cs b/src/Avalonia.Controls/AppBuilderBase.cs index 97de093a59..13e9c108e1 100644 --- a/src/Avalonia.Controls/AppBuilderBase.cs +++ b/src/Avalonia.Controls/AppBuilderBase.cs @@ -129,6 +129,24 @@ namespace Avalonia.Controls Instance.Run(window); } + /// + /// Starts the application with the provided instance of . + /// + /// The window type. + /// Instance of type TMainWindow to use when starting the app + /// A delegate that will be called to create a data context for the window (optional). + public void Start(TMainWindow mainWindow, Func dataContextProvider = null) + where TMainWindow : Window, new() + { + Setup(); + BeforeStartCallback(Self); + + if (dataContextProvider != null) + mainWindow.DataContext = dataContextProvider(); + mainWindow.Show(); + Instance.Run(mainWindow); + } + /// /// Sets up the platform-specific services for the application, but does not run it. ///