From fd180cd1c1fd4a37dbe583280f26c136a4345096 Mon Sep 17 00:00:00 2001 From: Damian Suess Date: Fri, 24 Nov 2023 10:52:45 -0500 Subject: [PATCH 1/4] Upgraded to Prism.Avalonia v8.1.97.11000 and Avalonia v11.0.5 NOTE: Issues on startup * InnerException = "DataTemplate inside of DataTemplates must have a DataType set. Set DataType property or use ItemTemplate with single template instead." --- SampleApp.Services/SampleApp.Services.csproj | 7 ++++++- .../SampleApp.Common/SampleApp.Common.csproj | 12 ++++++----- source/SampleApp.Common/TabControlAdapter.cs | 12 ++++++----- source/SampleApp.Main/App.axaml | 20 ++++++++++--------- source/SampleApp.Main/App.axaml.cs | 6 +++--- .../Core/RegionAdapters/GridRegionAdapter.cs | 9 +++++---- .../RegionAdapters/StackPanelRegionAdapter.cs | 8 ++++---- source/SampleApp.Main/Program.cs | 4 ---- source/SampleApp.Main/SampleApp.csproj | 14 +++++++------ .../SampleApp.Modules.Calendar.csproj | 14 +++++++------ .../Views/CalendarView.axaml | 8 ++++---- .../SampleApp.Modules.Contacts.csproj | 14 +++++++------ .../SampleApp.Modules.Mail.csproj | 14 +++++++------ .../Views/MailFocusedView.axaml | 4 ++-- .../SampleApp.Modules.Message.csproj | 14 +++++++------ 15 files changed, 89 insertions(+), 71 deletions(-) diff --git a/SampleApp.Services/SampleApp.Services.csproj b/SampleApp.Services/SampleApp.Services.csproj index 23fe4a7..7ccab61 100644 --- a/SampleApp.Services/SampleApp.Services.csproj +++ b/SampleApp.Services/SampleApp.Services.csproj @@ -1,11 +1,16 @@ - net6.0 + net7.0 enable enable + 11.0 + + + + diff --git a/source/SampleApp.Common/SampleApp.Common.csproj b/source/SampleApp.Common/SampleApp.Common.csproj index 7dd0a84..a5d1b52 100644 --- a/source/SampleApp.Common/SampleApp.Common.csproj +++ b/source/SampleApp.Common/SampleApp.Common.csproj @@ -1,15 +1,17 @@ - net6.0 + net7.0 ..\..\output + 11.0 - - - - + + + + + diff --git a/source/SampleApp.Common/TabControlAdapter.cs b/source/SampleApp.Common/TabControlAdapter.cs index 02c9187..970fbb5 100644 --- a/source/SampleApp.Common/TabControlAdapter.cs +++ b/source/SampleApp.Common/TabControlAdapter.cs @@ -59,8 +59,9 @@ protected override void Adapt(IRegion region, TabControl regionTarget) { var items = regionTarget.Items.Cast().ToList(); items.Add(new TabItem { Header = item.Tag, Content = item }); - regionTarget.Items = items; // Avalonia v0.10.x - //// regionTarget.Items.Set(items); // Avalonia v11 + + //// regionTarget.Items = items; // Avalonia v0.10.x + regionTarget.ItemsSource = items; // Avalonia v11.0 } } else if (e.Action == NotifyCollectionChangedAction.Remove) @@ -68,12 +69,13 @@ protected override void Adapt(IRegion region, TabControl regionTarget) foreach (UserControl item in e.OldItems) { var tabToDelete = regionTarget.Items.OfType().FirstOrDefault(n => n.Content == item); - // regionTarget.Items.Remove(tabToDelete); // WPF + // regionTarget.Items.Remove(tabToDelete); // WPF var items = regionTarget.Items.Cast().ToList(); items.Remove(tabToDelete); - regionTarget.Items = items; - //// regionTarget.Items.Set(items); // Avalonia v11 + + //// regionTarget.Items = items; // Avalonia v0.10 + regionTarget.ItemsSource = items; // Avalonia v11 } } }; diff --git a/source/SampleApp.Main/App.axaml b/source/SampleApp.Main/App.axaml index fbc31a6..2db8925 100644 --- a/source/SampleApp.Main/App.axaml +++ b/source/SampleApp.Main/App.axaml @@ -1,11 +1,13 @@ - + - + - - + --> + + + + diff --git a/source/SampleApp.Main/App.axaml.cs b/source/SampleApp.Main/App.axaml.cs index d939603..b449967 100644 --- a/source/SampleApp.Main/App.axaml.cs +++ b/source/SampleApp.Main/App.axaml.cs @@ -1,4 +1,4 @@ -using Avalonia; +using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Prism.Ioc; @@ -45,7 +45,7 @@ protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings reg regionAdapterMappings.RegisterMapping(typeof(TabControl), Container.Resolve()); } - protected override IAvaloniaObject CreateShell() + protected override AvaloniaObject CreateShell() { return this.Container.Resolve(); } @@ -75,4 +75,4 @@ protected override void RegisterTypes(IContainerRegistry containerRegistry) containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); } -} \ No newline at end of file +} diff --git a/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs b/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs index 4c80819..ba98fac 100644 --- a/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs +++ b/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs @@ -1,4 +1,4 @@ -using Avalonia.Controls; +using Avalonia.Controls; using Prism.Regions; namespace SampleApp.Main.Core.RegionAdapters @@ -16,14 +16,15 @@ protected override void Adapt(IRegion region, Grid regionTarget) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { - foreach (IControl item in e.NewItems) + foreach (Control item in e.NewItems) { regionTarget.Children.Add(item); } } + if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) { - foreach (IControl item in e.OldItems) + foreach (Control item in e.OldItems) { regionTarget.Children.Remove(item); } @@ -33,4 +34,4 @@ protected override void Adapt(IRegion region, Grid regionTarget) protected override IRegion CreateRegion() => new SingleActiveRegion() { }; } -} \ No newline at end of file +} diff --git a/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs b/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs index 6e5eb7c..1da8139 100644 --- a/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs +++ b/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs @@ -1,4 +1,4 @@ -using Avalonia.Controls; +using Avalonia.Controls; using Prism.Regions; namespace SampleApp.Main.Core.RegionAdapters @@ -16,7 +16,7 @@ protected override void Adapt(IRegion region, StackPanel regionTarget) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { - foreach (IControl item in e.NewItems) + foreach (Control item in e.NewItems) { if (e.NewItems != null) regionTarget.Children.Add(item); @@ -25,7 +25,7 @@ protected override void Adapt(IRegion region, StackPanel regionTarget) if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) { - foreach (IControl item in e.OldItems) + foreach (Control item in e.OldItems) { if (e.OldItems != null) regionTarget.Children.Remove(item); @@ -36,4 +36,4 @@ protected override void Adapt(IRegion region, StackPanel regionTarget) protected override IRegion CreateRegion() => new SingleActiveRegion() { }; } -} \ No newline at end of file +} diff --git a/source/SampleApp.Main/Program.cs b/source/SampleApp.Main/Program.cs index c291f08..3cd10a0 100644 --- a/source/SampleApp.Main/Program.cs +++ b/source/SampleApp.Main/Program.cs @@ -13,10 +13,6 @@ public static AppBuilder BuildAvaloniaApp() => AppBuilder EnableMultiTouch = false, UseDBusMenu = true }) - .With(new Win32PlatformOptions { - EnableMultitouch = true, - AllowEglInitialization = true - }) .UseSkia() .UseReactiveUI() .LogToTrace(); diff --git a/source/SampleApp.Main/SampleApp.csproj b/source/SampleApp.Main/SampleApp.csproj index 78444d2..605ddd1 100644 --- a/source/SampleApp.Main/SampleApp.csproj +++ b/source/SampleApp.Main/SampleApp.csproj @@ -1,19 +1,21 @@  WinExe - net6.0 + net7.0 enable + 11.0 - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj b/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj index 78c37d1..97d5b76 100644 --- a/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj +++ b/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj @@ -1,9 +1,10 @@ library - net6.0 + net7.0 enable ..\..\output + 11.0 @@ -15,11 +16,12 @@ - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Calendar/Views/CalendarView.axaml b/source/SampleApp.Modules.Calendar/Views/CalendarView.axaml index 36398f2..4fb4dc3 100644 --- a/source/SampleApp.Modules.Calendar/Views/CalendarView.axaml +++ b/source/SampleApp.Modules.Calendar/Views/CalendarView.axaml @@ -1,4 +1,4 @@ - - - - + diff --git a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj index 78c37d1..97d5b76 100644 --- a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj +++ b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj @@ -1,9 +1,10 @@ library - net6.0 + net7.0 enable ..\..\output + 11.0 @@ -15,11 +16,12 @@ - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj index b841a4d..5e986db 100644 --- a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj +++ b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj @@ -1,19 +1,21 @@ library - net6.0 + net7.0 enable ..\..\output + 11.0 - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml b/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml index e1569a8..38fd178 100644 --- a/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml +++ b/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml @@ -1,4 +1,4 @@ - diff --git a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj index 78c37d1..97d5b76 100644 --- a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj +++ b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj @@ -1,9 +1,10 @@ library - net6.0 + net7.0 enable ..\..\output + 11.0 @@ -15,11 +16,12 @@ - - - - - + + + + + + From 045870674cdc16d65da1955ebd633729757ed914 Mon Sep 17 00:00:00 2001 From: Damian Suess Date: Fri, 24 Nov 2023 11:48:12 -0500 Subject: [PATCH 2/4] Unified NuGet versioning via Directory.Packages.props. Set Avalonia ver to match Prism.Avalonia --- Directory.Packages.props | 12 ++++++++++++ Outlookish.sln | 3 ++- SampleApp.Services/SampleApp.Services.csproj | 2 +- source/SampleApp.Common/SampleApp.Common.csproj | 9 ++++----- source/SampleApp.Main/Program.cs | 1 + source/SampleApp.Main/SampleApp.csproj | 14 +++++++------- .../SampleApp.Modules.Calendar.csproj | 12 ++++++------ .../SampleApp.Modules.Contacts.csproj | 12 ++++++------ .../SampleApp.Modules.Mail.csproj | 12 ++++++------ .../SampleApp.Modules.Message.csproj | 12 ++++++------ 10 files changed, 51 insertions(+), 38 deletions(-) create mode 100644 Directory.Packages.props diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..4b46221 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Outlookish.sln b/Outlookish.sln index 8622348..ee42685 100644 --- a/Outlookish.sln +++ b/Outlookish.sln @@ -21,10 +21,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig CodeMaid.config = CodeMaid.config + Directory.Packages.props = Directory.Packages.props readme.md = readme.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleApp.Services", "SampleApp.Services\SampleApp.Services.csproj", "{1AFDDD2F-2AF5-4BF3-AE04-89A23B2991D3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleApp.Services", "SampleApp.Services\SampleApp.Services.csproj", "{1AFDDD2F-2AF5-4BF3-AE04-89A23B2991D3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/SampleApp.Services/SampleApp.Services.csproj b/SampleApp.Services/SampleApp.Services.csproj index 7ccab61..2e224a4 100644 --- a/SampleApp.Services/SampleApp.Services.csproj +++ b/SampleApp.Services/SampleApp.Services.csproj @@ -8,7 +8,7 @@ - + diff --git a/source/SampleApp.Common/SampleApp.Common.csproj b/source/SampleApp.Common/SampleApp.Common.csproj index a5d1b52..947921a 100644 --- a/source/SampleApp.Common/SampleApp.Common.csproj +++ b/source/SampleApp.Common/SampleApp.Common.csproj @@ -7,11 +7,10 @@ - - - - - + + + + diff --git a/source/SampleApp.Main/Program.cs b/source/SampleApp.Main/Program.cs index 3cd10a0..747ddf0 100644 --- a/source/SampleApp.Main/Program.cs +++ b/source/SampleApp.Main/Program.cs @@ -1,4 +1,5 @@ using Avalonia; +using Avalonia.Controls; using Avalonia.ReactiveUI; namespace SampleApp diff --git a/source/SampleApp.Main/SampleApp.csproj b/source/SampleApp.Main/SampleApp.csproj index 605ddd1..51715d0 100644 --- a/source/SampleApp.Main/SampleApp.csproj +++ b/source/SampleApp.Main/SampleApp.csproj @@ -10,13 +10,13 @@ - - - - - - - + + + + + + + diff --git a/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj b/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj index 97d5b76..219fc08 100644 --- a/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj +++ b/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj @@ -16,12 +16,12 @@ - - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj index 97d5b76..6393ef3 100644 --- a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj +++ b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj @@ -16,12 +16,12 @@ - - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj index 5e986db..b4def20 100644 --- a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj +++ b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj @@ -10,12 +10,12 @@ - - - - - - + + + + + + diff --git a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj index 97d5b76..6393ef3 100644 --- a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj +++ b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj @@ -16,12 +16,12 @@ - - - - - - + + + + + + From 5e014cd54d2d181088afa717a9d0dd96be85586b Mon Sep 17 00:00:00 2001 From: Damian Suess Date: Fri, 24 Nov 2023 13:24:10 -0500 Subject: [PATCH 3/4] ReactiveUI --- source/SampleApp.Common/SampleApp.Common.csproj | 1 + .../SampleApp.Modules.Contacts.csproj | 2 +- source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj | 2 +- .../SampleApp.Modules.Message/SampleApp.Modules.Message.csproj | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/SampleApp.Common/SampleApp.Common.csproj b/source/SampleApp.Common/SampleApp.Common.csproj index 947921a..65ed6e0 100644 --- a/source/SampleApp.Common/SampleApp.Common.csproj +++ b/source/SampleApp.Common/SampleApp.Common.csproj @@ -8,6 +8,7 @@ + diff --git a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj index 6393ef3..219fc08 100644 --- a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj +++ b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj @@ -19,7 +19,7 @@ - + diff --git a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj index b4def20..8856028 100644 --- a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj +++ b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj @@ -13,7 +13,7 @@ - + diff --git a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj index 6393ef3..219fc08 100644 --- a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj +++ b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj @@ -19,7 +19,7 @@ - + From 0ef7f23b15f2eb99ec311ca338e5a6019308c391 Mon Sep 17 00:00:00 2001 From: M-L-Ml Date: Thu, 15 May 2025 14:59:26 +0200 Subject: [PATCH 4/4] "Avalonia" Version="11.2.8", .net 9 + fix --- Directory.Packages.props | 22 +++++++++++-------- SampleApp.Services/SampleApp.Services.csproj | 7 +----- readme.md | 10 ++++++--- .../SampleApp.Common/SampleApp.Common.csproj | 4 +--- source/SampleApp.Common/TabControlAdapter.cs | 21 +++++++++--------- source/SampleApp.Common/ViewModelBase.cs | 2 +- source/SampleApp.Main/App.axaml | 4 +--- source/SampleApp.Main/App.axaml.cs | 2 +- .../Core/RegionAdapters/GridRegionAdapter.cs | 2 +- .../RegionAdapters/StackPanelRegionAdapter.cs | 2 +- .../SampleFooter/SampleFooterModule.cs | 2 +- source/SampleApp.Main/Program.cs | 1 - source/SampleApp.Main/SampleApp.csproj | 3 +-- .../ViewModels/DashboardViewModel.cs | 4 ++-- .../ViewModels/MainWindowViewModel.cs | 3 ++- .../ViewModels/MessageBoxViewModel.cs | 6 ++--- .../ViewModels/SettingsViewModel.cs | 2 +- .../CalendarModule.cs | 6 ++--- .../SampleApp.Modules.Calendar.csproj | 4 +--- .../ContactsModule.cs | 6 ++--- .../SampleApp.Modules.Contacts.csproj | 3 +-- source/SampleApp.Modules.Mail/MailModule.cs | 4 ++-- .../SampleApp.Modules.Mail.csproj | 3 +-- .../ViewModels/MailViewModel.cs | 2 +- .../Views/MailFocusedView.axaml | 6 ++--- .../Views/MailFocusedView.axaml.cs | 2 +- .../MessageModule.cs | 6 ++--- .../SampleApp.Modules.Message.csproj | 4 +--- 28 files changed, 68 insertions(+), 75 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 4b46221..5d3da4a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,12 +1,16 @@ + + + true + - - - - - - - - + + + + + + + + - + \ No newline at end of file diff --git a/SampleApp.Services/SampleApp.Services.csproj b/SampleApp.Services/SampleApp.Services.csproj index 2e224a4..ff8a1be 100644 --- a/SampleApp.Services/SampleApp.Services.csproj +++ b/SampleApp.Services/SampleApp.Services.csproj @@ -1,16 +1,11 @@ - net7.0 + net9.0 enable enable - 11.0 - - - - diff --git a/readme.md b/readme.md index 0e64cc6..41536b8 100644 --- a/readme.md +++ b/readme.md @@ -220,15 +220,19 @@ where T : AppBuilderBase, new() } ``` -The same way the avalonia framework gives us the possibility to use specific UI mechanism based on the detected platform. +The same way the Avalonia framework allows us to use specific UI mechanisms based on the detected platform. -## Future Considerations +## Upcoming Releases + +* Upgrade to Avalonia v11.1 with Prism v9.0-pre + +### Future Considerations * Demonstrate page navigation with parameters - _use a `MockEmails` class to pass in EmailId and `OnNavigatedTo()` get email from `MailService`_ * Include successful navigation * Include failed navigation (i.e. invalid EmailId) * Use Prism's 'Navigation Journaling -* Populate footer using Prism Events +* Populate the footer using Prism Events * Add icon glyphs via Styles * Sidebar Panel - Simple sidebar with stages * Flyout menu - Alternative sidebar using Grids diff --git a/source/SampleApp.Common/SampleApp.Common.csproj b/source/SampleApp.Common/SampleApp.Common.csproj index 65ed6e0..5c21f67 100644 --- a/source/SampleApp.Common/SampleApp.Common.csproj +++ b/source/SampleApp.Common/SampleApp.Common.csproj @@ -1,15 +1,13 @@ - net7.0 + net9.0 ..\..\output - 11.0 - diff --git a/source/SampleApp.Common/TabControlAdapter.cs b/source/SampleApp.Common/TabControlAdapter.cs index 970fbb5..d48e637 100644 --- a/source/SampleApp.Common/TabControlAdapter.cs +++ b/source/SampleApp.Common/TabControlAdapter.cs @@ -2,7 +2,7 @@ using System.Collections.Specialized; using System.Linq; using Avalonia.Controls; -using Prism.Regions; +using Prism.Navigation.Regions; namespace SampleApp.Common; @@ -57,11 +57,12 @@ protected override void Adapt(IRegion region, TabControl regionTarget) { foreach (UserControl item in e.NewItems) { - var items = regionTarget.Items.Cast().ToList(); - items.Add(new TabItem { Header = item.Tag, Content = item }); + //var items = regionTarget.Items.Cast().ToList(); + // items.Add(new TabItem { Header = item.Tag, Content = item }); + // regionTarget.Items = items; // Avalonia v0.10.x + regionTarget.Items.Add(new TabItem { Header = item.Tag, Content = item }); - //// regionTarget.Items = items; // Avalonia v0.10.x - regionTarget.ItemsSource = items; // Avalonia v11.0 + //regionTarget.ItemsSource = items; // Avalonia v11.0 } } else if (e.Action == NotifyCollectionChangedAction.Remove) @@ -70,12 +71,12 @@ protected override void Adapt(IRegion region, TabControl regionTarget) { var tabToDelete = regionTarget.Items.OfType().FirstOrDefault(n => n.Content == item); + regionTarget.Items.Remove(tabToDelete); // regionTarget.Items.Remove(tabToDelete); // WPF - var items = regionTarget.Items.Cast().ToList(); - items.Remove(tabToDelete); - - //// regionTarget.Items = items; // Avalonia v0.10 - regionTarget.ItemsSource = items; // Avalonia v11 + //var items = regionTarget.Items.Cast().ToList(); + // items.Remove(tabToDelete); + // regionTarget.Items = items; // Avalonia v0.10 + //regionTarget.ItemsSource = items; // Avalonia v11 } } }; diff --git a/source/SampleApp.Common/ViewModelBase.cs b/source/SampleApp.Common/ViewModelBase.cs index 3c9f7ec..fe6d01b 100644 --- a/source/SampleApp.Common/ViewModelBase.cs +++ b/source/SampleApp.Common/ViewModelBase.cs @@ -1,5 +1,5 @@ using Prism.Mvvm; -using Prism.Regions; +using Prism.Navigation.Regions; namespace SampleApp.Common { diff --git a/source/SampleApp.Main/App.axaml b/source/SampleApp.Main/App.axaml index 2db8925..a9b7285 100644 --- a/source/SampleApp.Main/App.axaml +++ b/source/SampleApp.Main/App.axaml @@ -4,10 +4,8 @@ x:Class="SampleApp.App" RequestedThemeVariant="Default"> - + diff --git a/source/SampleApp.Main/App.axaml.cs b/source/SampleApp.Main/App.axaml.cs index b449967..7c2be85 100644 --- a/source/SampleApp.Main/App.axaml.cs +++ b/source/SampleApp.Main/App.axaml.cs @@ -3,7 +3,7 @@ using Avalonia.Markup.Xaml; using Prism.Ioc; using Prism.Modularity; -using Prism.Regions; +using Prism.Navigation.Regions; using Prism.DryIoc; using SampleApp.Common; using SampleApp.Main.Core.RegionAdapters; diff --git a/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs b/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs index ba98fac..f265c32 100644 --- a/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs +++ b/source/SampleApp.Main/Core/RegionAdapters/GridRegionAdapter.cs @@ -1,5 +1,5 @@ using Avalonia.Controls; -using Prism.Regions; +using Prism.Navigation.Regions; namespace SampleApp.Main.Core.RegionAdapters { diff --git a/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs b/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs index 1da8139..c584ff8 100644 --- a/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs +++ b/source/SampleApp.Main/Core/RegionAdapters/StackPanelRegionAdapter.cs @@ -1,5 +1,5 @@ using Avalonia.Controls; -using Prism.Regions; +using Prism.Navigation.Regions; namespace SampleApp.Main.Core.RegionAdapters { diff --git a/source/SampleApp.Main/Modules/SampleFooter/SampleFooterModule.cs b/source/SampleApp.Main/Modules/SampleFooter/SampleFooterModule.cs index 6e41155..67f212d 100644 --- a/source/SampleApp.Main/Modules/SampleFooter/SampleFooterModule.cs +++ b/source/SampleApp.Main/Modules/SampleFooter/SampleFooterModule.cs @@ -1,6 +1,6 @@ using Prism.Ioc; using Prism.Modularity; -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Modules.SampleFooter.ViewModels; using SampleApp.Modules.SampleFooter.Views; diff --git a/source/SampleApp.Main/Program.cs b/source/SampleApp.Main/Program.cs index 747ddf0..3cd10a0 100644 --- a/source/SampleApp.Main/Program.cs +++ b/source/SampleApp.Main/Program.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Controls; using Avalonia.ReactiveUI; namespace SampleApp diff --git a/source/SampleApp.Main/SampleApp.csproj b/source/SampleApp.Main/SampleApp.csproj index 51715d0..abe3c28 100644 --- a/source/SampleApp.Main/SampleApp.csproj +++ b/source/SampleApp.Main/SampleApp.csproj @@ -1,9 +1,8 @@  WinExe - net7.0 + net9.0 enable - 11.0 diff --git a/source/SampleApp.Main/ViewModels/DashboardViewModel.cs b/source/SampleApp.Main/ViewModels/DashboardViewModel.cs index d31a6d2..443d89f 100644 --- a/source/SampleApp.Main/ViewModels/DashboardViewModel.cs +++ b/source/SampleApp.Main/ViewModels/DashboardViewModel.cs @@ -1,6 +1,6 @@ using Prism.Commands; -using Prism.Regions; -using Prism.Services.Dialogs; +using Prism.Dialogs; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Services; using SampleApp.Views; diff --git a/source/SampleApp.Main/ViewModels/MainWindowViewModel.cs b/source/SampleApp.Main/ViewModels/MainWindowViewModel.cs index 310db4a..85ff98b 100644 --- a/source/SampleApp.Main/ViewModels/MainWindowViewModel.cs +++ b/source/SampleApp.Main/ViewModels/MainWindowViewModel.cs @@ -2,7 +2,8 @@ using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Prism.Commands; -using Prism.Services.Dialogs; +//using Prism.Services.Dialogs; +using Prism.Dialogs; using SampleApp.Common; using SampleApp.Views; using MenuItem = SampleApp.Main.Models.MenuItem; diff --git a/source/SampleApp.Main/ViewModels/MessageBoxViewModel.cs b/source/SampleApp.Main/ViewModels/MessageBoxViewModel.cs index f106bc3..7f35d35 100644 --- a/source/SampleApp.Main/ViewModels/MessageBoxViewModel.cs +++ b/source/SampleApp.Main/ViewModels/MessageBoxViewModel.cs @@ -1,7 +1,7 @@ using System; using Prism.Commands; using Prism.Mvvm; -using Prism.Services.Dialogs; +using Prism.Dialogs; namespace SampleApp.ViewModels; @@ -20,7 +20,7 @@ public MessageBoxViewModel() MaxWidth = 600; } - public event Action? RequestClose; + public DialogCloseListener RequestClose { get; } public DelegateCommand CmdResult => new((string buttonResult) => { @@ -69,6 +69,6 @@ public void OnDialogOpened(IDialogParameters parameters) public virtual void RaiseRequestClose(IDialogResult dialogResult) { - RequestClose?.Invoke(dialogResult); + RequestClose.Invoke(dialogResult); } } diff --git a/source/SampleApp.Main/ViewModels/SettingsViewModel.cs b/source/SampleApp.Main/ViewModels/SettingsViewModel.cs index e5a5df5..0c4bd97 100644 --- a/source/SampleApp.Main/ViewModels/SettingsViewModel.cs +++ b/source/SampleApp.Main/ViewModels/SettingsViewModel.cs @@ -1,4 +1,4 @@ -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; namespace SampleApp.ViewModels; diff --git a/source/SampleApp.Modules.Calendar/CalendarModule.cs b/source/SampleApp.Modules.Calendar/CalendarModule.cs index b6b91f7..cc6f7b7 100644 --- a/source/SampleApp.Modules.Calendar/CalendarModule.cs +++ b/source/SampleApp.Modules.Calendar/CalendarModule.cs @@ -1,6 +1,6 @@ -using Prism.Ioc; +using Prism.Ioc; using Prism.Modularity; -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Modules.Calendar.Views; @@ -18,4 +18,4 @@ public void RegisterTypes(IContainerRegistry containerRegistry) { } } -} \ No newline at end of file +} diff --git a/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj b/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj index 219fc08..8d1f203 100644 --- a/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj +++ b/source/SampleApp.Modules.Calendar/SampleApp.Modules.Calendar.csproj @@ -1,10 +1,9 @@ library - net7.0 + net9.0 enable ..\..\output - 11.0 @@ -20,7 +19,6 @@ - diff --git a/source/SampleApp.Modules.Contacts/ContactsModule.cs b/source/SampleApp.Modules.Contacts/ContactsModule.cs index bb231ad..5257d80 100644 --- a/source/SampleApp.Modules.Contacts/ContactsModule.cs +++ b/source/SampleApp.Modules.Contacts/ContactsModule.cs @@ -1,6 +1,6 @@ -using Prism.Ioc; +using Prism.Ioc; using Prism.Modularity; -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Modules.Contacts.Views; @@ -17,4 +17,4 @@ public void OnInitialized(IContainerProvider containerProvider) public void RegisterTypes(IContainerRegistry containerRegistry) { } -} \ No newline at end of file +} diff --git a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj index 219fc08..e229950 100644 --- a/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj +++ b/source/SampleApp.Modules.Contacts/SampleApp.Modules.Contacts.csproj @@ -1,7 +1,7 @@ library - net7.0 + net9.0 enable ..\..\output 11.0 @@ -20,7 +20,6 @@ - diff --git a/source/SampleApp.Modules.Mail/MailModule.cs b/source/SampleApp.Modules.Mail/MailModule.cs index bb20a1a..3e5bf30 100644 --- a/source/SampleApp.Modules.Mail/MailModule.cs +++ b/source/SampleApp.Modules.Mail/MailModule.cs @@ -1,6 +1,6 @@ -using Prism.Ioc; +using Prism.Ioc; using Prism.Modularity; -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Modules.Mail.ViewModels; using SampleApp.Modules.Mail.Views; diff --git a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj index 8856028..aa58445 100644 --- a/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj +++ b/source/SampleApp.Modules.Mail/SampleApp.Modules.Mail.csproj @@ -1,7 +1,7 @@ library - net7.0 + net9.0 enable ..\..\output 11.0 @@ -14,7 +14,6 @@ - diff --git a/source/SampleApp.Modules.Mail/ViewModels/MailViewModel.cs b/source/SampleApp.Modules.Mail/ViewModels/MailViewModel.cs index f23f907..e890a2f 100644 --- a/source/SampleApp.Modules.Mail/ViewModels/MailViewModel.cs +++ b/source/SampleApp.Modules.Mail/ViewModels/MailViewModel.cs @@ -1,6 +1,6 @@ using Avalonia.Controls; using Prism.Commands; -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Services; diff --git a/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml b/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml index 38fd178..9c2393f 100644 --- a/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml +++ b/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml @@ -12,8 +12,8 @@ ItemsSource="{Binding MailMessages}" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" - SelectionMode="Single"> - + SelectionMode="Single" > + @@ -22,6 +22,6 @@ - + diff --git a/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml.cs b/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml.cs index 9fd37fa..1e5e914 100644 --- a/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml.cs +++ b/source/SampleApp.Modules.Mail/Views/MailFocusedView.axaml.cs @@ -1,4 +1,4 @@ -using Avalonia.Controls; +using Avalonia.Controls; using Avalonia.Markup.Xaml; namespace SampleApp.Modules.Mail.Views; diff --git a/source/SampleApp.Modules.Message/MessageModule.cs b/source/SampleApp.Modules.Message/MessageModule.cs index e7defa0..b45aeab 100644 --- a/source/SampleApp.Modules.Message/MessageModule.cs +++ b/source/SampleApp.Modules.Message/MessageModule.cs @@ -1,6 +1,6 @@ -using Prism.Ioc; +using Prism.Ioc; using Prism.Modularity; -using Prism.Regions; +using Prism.Navigation.Regions; using SampleApp.Common; using SampleApp.Modules.Message.Views; @@ -19,4 +19,4 @@ public void RegisterTypes(IContainerRegistry containerRegistry) { } } -} \ No newline at end of file +} diff --git a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj index 219fc08..8d1f203 100644 --- a/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj +++ b/source/SampleApp.Modules.Message/SampleApp.Modules.Message.csproj @@ -1,10 +1,9 @@ library - net7.0 + net9.0 enable ..\..\output - 11.0 @@ -20,7 +19,6 @@ -