diff --git a/samples/ControlCatalog.Desktop/Program.cs b/samples/ControlCatalog.Desktop/Program.cs index eb1da66fbc..dd5644dd6b 100644 --- a/samples/ControlCatalog.Desktop/Program.cs +++ b/samples/ControlCatalog.Desktop/Program.cs @@ -13,8 +13,6 @@ namespace ControlCatalog [STAThread] static void Main(string[] args) { - Avalonia.Controls.DataGrid.Load(); - // TODO: Make this work with GTK/Skia/Cairo depending on command-line args // again. BuildAvaloniaApp().Start(); @@ -24,7 +22,11 @@ namespace ControlCatalog /// This method is needed for IDE previewer infrastructure /// public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure().LogToDebug().UsePlatformDetect().UseReactiveUI(); + => AppBuilder.Configure() + .LogToDebug() + .UsePlatformDetect() + .UseReactiveUI() + .UseDataGrid(); private static void ConfigureAssetAssembly(AppBuilder builder) { diff --git a/samples/ControlCatalog.NetCore/Program.cs b/samples/ControlCatalog.NetCore/Program.cs index 819c503712..d13a5b5ef3 100644 --- a/samples/ControlCatalog.NetCore/Program.cs +++ b/samples/ControlCatalog.NetCore/Program.cs @@ -12,7 +12,6 @@ namespace ControlCatalog.NetCore static void Main(string[] args) { - Avalonia.Controls.DataGrid.Load(); Thread.CurrentThread.TrySetApartmentState(ApartmentState.STA); if (args.Contains("--wait-for-attach")) { @@ -44,7 +43,11 @@ namespace ControlCatalog.NetCore /// This method is needed for IDE previewer infrastructure /// public static AppBuilder BuildAvaloniaApp() - => AppBuilder.Configure().UsePlatformDetect().UseSkia().UseReactiveUI(); + => AppBuilder.Configure() + .UsePlatformDetect() + .UseSkia() + .UseReactiveUI() + .UseDataGrid(); static void ConsoleSilencer() { diff --git a/src/Avalonia.Controls.DataGrid/AppBuilderExtensions.cs b/src/Avalonia.Controls.DataGrid/AppBuilderExtensions.cs new file mode 100644 index 0000000000..bdb9bf182c --- /dev/null +++ b/src/Avalonia.Controls.DataGrid/AppBuilderExtensions.cs @@ -0,0 +1,20 @@ +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using Avalonia.Controls; +using Avalonia.Threading; + +namespace Avalonia +{ + public static class AppBuilderExtensions + { + public static TAppBuilder UseDataGrid(this TAppBuilder builder) + where TAppBuilder : AppBuilderBase, new() + { + // Portable.Xaml doesn't correctly load referenced assemblies and so doesn't + // find `DataGrid` when loading XAML. Call this method from AppBuilder as a + // temporary workaround until we fix XAML. + return builder; + } + } +} diff --git a/src/Avalonia.Controls.DataGrid/DataGrid.cs b/src/Avalonia.Controls.DataGrid/DataGrid.cs index e4c6f32866..bcd12fbfbb 100644 --- a/src/Avalonia.Controls.DataGrid/DataGrid.cs +++ b/src/Avalonia.Controls.DataGrid/DataGrid.cs @@ -5949,13 +5949,5 @@ namespace Avalonia.Controls { AutoGeneratingColumn?.Invoke(this, e); } - - /// - /// Loads this assembly in runtime. - /// - public static void Load() - { - - } } -} \ No newline at end of file +}