diff --git a/Directory.Build.props b/Directory.Build.props
index d8fddb6cc1..515fcaa446 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -156,13 +156,13 @@
-
-
-
-
diff --git a/PrismLibrary.sln b/PrismLibrary.sln
deleted file mode 100644
index cd343596cf..0000000000
--- a/PrismLibrary.sln
+++ /dev/null
@@ -1,462 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.4.33213.308
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}"
- ProjectSection(SolutionItems) = preProject
- src\Directory.Build.props = src\Directory.Build.props
- src\Directory.Build.targets = src\Directory.Build.targets
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core", "src\Prism.Core\Prism.Core.csproj", "{F634CA1E-9237-4E69-B23C-91AA6FBCABFF}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{00FFDC13-7397-46F1-897E-A62A7575D28A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core.Tests", "tests\Prism.Core.Tests\Prism.Core.Tests.csproj", "{8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wpf", "Wpf", "{C2BA93F6-D2E1-455F-B9FA-6221D087295E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Wpf", "src\Wpf\Prism.Wpf\Prism.Wpf.csproj", "{CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Wpf", "src\Wpf\Prism.DryIoc.Wpf\Prism.DryIoc.Wpf.csproj", "{0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Unity.Wpf", "src\Wpf\Prism.Unity.Wpf\Prism.Unity.Wpf.csproj", "{E9A2458B-999D-4D36-822F-663D3830575A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wpf", "Wpf", "{F1F91777-01EA-43A3-A3ED-D473B382F46C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Wpf.Tests", "tests\Wpf\Prism.Wpf.Tests\Prism.Wpf.Tests.csproj", "{C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Wpf.Tests", "tests\Wpf\Prism.DryIoc.Wpf.Tests\Prism.DryIoc.Wpf.Tests.csproj", "{BA05687E-2317-4A65-805B-C596F52F7203}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Unity.Wpf.Tests", "tests\Wpf\Prism.Unity.Wpf.Tests\Prism.Unity.Wpf.Tests.csproj", "{367BE810-5B34-4894-BE47-1C8DCC67DE81}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.IocContainer.Wpf.Tests.Support", "tests\Wpf\Prism.IocContainer.Wpf.Tests.Support\Prism.IocContainer.Wpf.Tests.Support.csproj", "{2E8F565D-9D13-424E-BD86-C5A362F9AAE7}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{10DFE0CA-4F29-4859-B60F-94073D43FB51}"
- ProjectSection(SolutionItems) = preProject
- .editorconfig = .editorconfig
- .gitignore = .gitignore
- CodeCoverage.runsettings = CodeCoverage.runsettings
- Directory.Build.props = Directory.Build.props
- Directory.build.targets = Directory.build.targets
- Directory.Packages.props = Directory.Packages.props
- global.json = global.json
- xunit.runner.json = xunit.runner.json
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Uno", "Uno", "{8F959801-D494-4CAF-9437-90F30472E169}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Prism.Container.Wpf.Shared", "tests\Wpf\Prism.Container.Wpf.Shared\Prism.Container.Wpf.Shared.shproj", "{BD42A7D6-A84D-4D27-9C28-7F6A2EC477F1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Uno.WinUI", "src\Uno\Prism.Uno\Prism.Uno.WinUI.csproj", "{E74664C1-1BB1-4920-8099-2C9125CFD00B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Uno.WinUI", "src\Uno\Prism.DryIoc.Uno\Prism.DryIoc.Uno.WinUI.csproj", "{DB530D15-0556-4B6F-96B2-1497C8DF08D6}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Maui", "Maui", "{24639CEB-266D-40E1-B0A8-B78BB6F8CEF8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui", "src\Maui\Prism.Maui\Prism.Maui.csproj", "{BC84ABD6-A230-4367-8E6A-85B6BA1D851A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui.Rx", "src\Maui\Prism.Maui.Rx\Prism.Maui.Rx.csproj", "{D7B41D0E-CBE4-4846-992F-C955CE45DC08}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Maui", "src\Maui\Prism.DryIoc.Maui\Prism.DryIoc.Maui.csproj", "{60D92138-66AC-4DC9-973D-FDD917F87112}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Maui", "Maui", "{540CEEC1-D541-4614-BF0B-18056A83E434}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui.Tests", "tests\Maui\Prism.Maui.Tests\Prism.Maui.Tests.csproj", "{7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Maui.Tests", "tests\Maui\Prism.DryIoc.Maui.Tests\Prism.DryIoc.Maui.Tests.csproj", "{8711D306-1118-4A11-9399-EF14AA13015E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Events", "src\Prism.Events\Prism.Events.csproj", "{8610485A-BE9F-4938-86D4-E9F1FA1739A0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Uno.WinUI.Markup", "src\Uno\Prism.Uno.Markup\Prism.Uno.WinUI.Markup.csproj", "{0EA416B6-0AB6-464B-9F4D-206FFCFB262D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Avalonia", "Avalonia", "{8AE1015F-4D62-47EF-A576-2F7411EC20D5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Avalonia", "src\Avalonia\Prism.Avalonia\Prism.Avalonia.csproj", "{C505C63F-99E6-464F-8C83-1AE4239C19B1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Avalonia", "src\Avalonia\Prism.DryIoc.Avalonia\Prism.DryIoc.Avalonia.csproj", "{A6B7B19C-3288-4CD2-A737-527BEB1ED807}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Avalonia.Tests", "tests\Avalonia\Prism.Avalonia.Tests\Prism.Avalonia.Tests.csproj", "{AB501F63-8E8C-4333-8A15-81BA02F3C703}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Prism.Container.Avalonia.Shared", "tests\Avalonia\Prism.Container.Avalonia.Shared\Prism.Container.Avalonia.Shared.shproj", "{6FDA7D49-DF44-4E8F-A182-0EB73DD3C452}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Avalonia.Tests", "tests\Avalonia\Prism.DryIoc.Avalonia.Tests\Prism.DryIoc.Avalonia.Tests.csproj", "{03B9C775-9582-409F-B67F-6B8A0CE0C7AF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.IocContainer.Avalonia.Tests.Support", "tests\Avalonia\Prism.IocContainer.Avalonia.Tests.Support\Prism.IocContainer.Avalonia.Tests.Support.csproj", "{887E0794-798D-4127-847E-6F68D5C9B334}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Avalonia", "Avalonia", "{904D5094-55F9-4581-90AC-D6C1131F8152}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Uno", "Uno", "{8B763117-8E13-0D1A-AFE0-5BC3FACCF29C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Uno.WinUI.Tests", "tests\Uno\Prism.Uno.WinUI.Tests\Prism.Uno.WinUI.Tests.csproj", "{05132055-211C-42D4-B40A-39E4BB066E7B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Prism.Uno", "Prism.Uno", "{1E1EDCAE-FD32-8442-764F-7F151A12D8D4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.DryIoc.Uno.WinUI.Tests", "tests\Uno\Prism.DryIoc.Uno.WinUI.Tests\Prism.DryIoc.Uno.WinUI.Tests.csproj", "{158173F6-E776-422C-9127-8994C504867B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Prism.DryIoc.Uno", "Prism.DryIoc.Uno", "{064C69BC-4576-336C-79BF-6771226CD9DC}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Debug|x64.Build.0 = Debug|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Debug|x86.Build.0 = Debug|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Release|Any CPU.Build.0 = Release|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Release|x64.ActiveCfg = Release|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Release|x64.Build.0 = Release|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Release|x86.ActiveCfg = Release|Any CPU
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF}.Release|x86.Build.0 = Release|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Debug|x64.Build.0 = Debug|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Debug|x86.Build.0 = Debug|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Release|Any CPU.Build.0 = Release|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Release|x64.ActiveCfg = Release|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Release|x64.Build.0 = Release|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Release|x86.ActiveCfg = Release|Any CPU
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A}.Release|x86.Build.0 = Release|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Debug|x64.ActiveCfg = Debug|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Debug|x64.Build.0 = Debug|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Debug|x86.Build.0 = Debug|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Release|x64.ActiveCfg = Release|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Release|x64.Build.0 = Release|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Release|x86.ActiveCfg = Release|Any CPU
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF}.Release|x86.Build.0 = Release|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Debug|x64.Build.0 = Debug|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Debug|x86.Build.0 = Debug|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Release|Any CPU.Build.0 = Release|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Release|x64.ActiveCfg = Release|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Release|x64.Build.0 = Release|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Release|x86.ActiveCfg = Release|Any CPU
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2}.Release|x86.Build.0 = Release|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Debug|x64.Build.0 = Debug|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Debug|x86.Build.0 = Debug|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Release|Any CPU.Build.0 = Release|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Release|x64.ActiveCfg = Release|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Release|x64.Build.0 = Release|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Release|x86.ActiveCfg = Release|Any CPU
- {E9A2458B-999D-4D36-822F-663D3830575A}.Release|x86.Build.0 = Release|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Debug|x64.Build.0 = Debug|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Debug|x86.Build.0 = Debug|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Release|Any CPU.Build.0 = Release|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Release|x64.ActiveCfg = Release|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Release|x64.Build.0 = Release|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Release|x86.ActiveCfg = Release|Any CPU
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA}.Release|x86.Build.0 = Release|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Debug|x64.ActiveCfg = Debug|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Debug|x64.Build.0 = Debug|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Debug|x86.Build.0 = Debug|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Release|Any CPU.Build.0 = Release|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Release|x64.ActiveCfg = Release|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Release|x64.Build.0 = Release|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Release|x86.ActiveCfg = Release|Any CPU
- {BA05687E-2317-4A65-805B-C596F52F7203}.Release|x86.Build.0 = Release|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Debug|x64.ActiveCfg = Debug|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Debug|x64.Build.0 = Debug|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Debug|x86.ActiveCfg = Debug|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Debug|x86.Build.0 = Debug|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Release|Any CPU.Build.0 = Release|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Release|x64.ActiveCfg = Release|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Release|x64.Build.0 = Release|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Release|x86.ActiveCfg = Release|Any CPU
- {367BE810-5B34-4894-BE47-1C8DCC67DE81}.Release|x86.Build.0 = Release|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Debug|x64.Build.0 = Debug|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Debug|x86.Build.0 = Debug|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Release|Any CPU.Build.0 = Release|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Release|x64.ActiveCfg = Release|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Release|x64.Build.0 = Release|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Release|x86.ActiveCfg = Release|Any CPU
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7}.Release|x86.Build.0 = Release|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Debug|x64.Build.0 = Debug|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Debug|x86.Build.0 = Debug|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Release|Any CPU.Build.0 = Release|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Release|x64.ActiveCfg = Release|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Release|x64.Build.0 = Release|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Release|x86.ActiveCfg = Release|Any CPU
- {E74664C1-1BB1-4920-8099-2C9125CFD00B}.Release|x86.Build.0 = Release|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Debug|x64.ActiveCfg = Debug|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Debug|x64.Build.0 = Debug|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Debug|x86.Build.0 = Debug|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Release|Any CPU.Build.0 = Release|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Release|x64.ActiveCfg = Release|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Release|x64.Build.0 = Release|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Release|x86.ActiveCfg = Release|Any CPU
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6}.Release|x86.Build.0 = Release|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Debug|x64.Build.0 = Debug|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Debug|x86.Build.0 = Debug|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Release|Any CPU.Build.0 = Release|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Release|x64.ActiveCfg = Release|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Release|x64.Build.0 = Release|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Release|x86.ActiveCfg = Release|Any CPU
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A}.Release|x86.Build.0 = Release|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Debug|x64.Build.0 = Debug|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Debug|x86.Build.0 = Debug|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Release|Any CPU.Build.0 = Release|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Release|x64.ActiveCfg = Release|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Release|x64.Build.0 = Release|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Release|x86.ActiveCfg = Release|Any CPU
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08}.Release|x86.Build.0 = Release|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Debug|x64.ActiveCfg = Debug|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Debug|x64.Build.0 = Debug|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Debug|x86.ActiveCfg = Debug|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Debug|x86.Build.0 = Debug|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Release|Any CPU.Build.0 = Release|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Release|x64.ActiveCfg = Release|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Release|x64.Build.0 = Release|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Release|x86.ActiveCfg = Release|Any CPU
- {60D92138-66AC-4DC9-973D-FDD917F87112}.Release|x86.Build.0 = Release|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Debug|x64.ActiveCfg = Debug|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Debug|x64.Build.0 = Debug|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Debug|x86.Build.0 = Debug|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Release|Any CPU.Build.0 = Release|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Release|x64.ActiveCfg = Release|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Release|x64.Build.0 = Release|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Release|x86.ActiveCfg = Release|Any CPU
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7}.Release|x86.Build.0 = Release|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Debug|x64.Build.0 = Debug|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Debug|x86.Build.0 = Debug|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Release|Any CPU.Build.0 = Release|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x64.ActiveCfg = Release|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x64.Build.0 = Release|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x86.ActiveCfg = Release|Any CPU
- {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x86.Build.0 = Release|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x64.Build.0 = Debug|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x86.Build.0 = Debug|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|Any CPU.Build.0 = Release|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x64.ActiveCfg = Release|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x64.Build.0 = Release|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x86.ActiveCfg = Release|Any CPU
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x86.Build.0 = Release|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Debug|x64.ActiveCfg = Debug|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Debug|x64.Build.0 = Debug|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Debug|x86.Build.0 = Debug|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Release|Any CPU.Build.0 = Release|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Release|x64.ActiveCfg = Release|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Release|x64.Build.0 = Release|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Release|x86.ActiveCfg = Release|Any CPU
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D}.Release|x86.Build.0 = Release|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Debug|x64.Build.0 = Debug|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Debug|x86.Build.0 = Debug|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Release|Any CPU.Build.0 = Release|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Release|x64.ActiveCfg = Release|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Release|x64.Build.0 = Release|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Release|x86.ActiveCfg = Release|Any CPU
- {C505C63F-99E6-464F-8C83-1AE4239C19B1}.Release|x86.Build.0 = Release|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Debug|x64.Build.0 = Debug|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Debug|x86.Build.0 = Debug|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Release|Any CPU.Build.0 = Release|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Release|x64.ActiveCfg = Release|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Release|x64.Build.0 = Release|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Release|x86.ActiveCfg = Release|Any CPU
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807}.Release|x86.Build.0 = Release|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Debug|x64.ActiveCfg = Debug|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Debug|x64.Build.0 = Debug|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Debug|x86.ActiveCfg = Debug|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Debug|x86.Build.0 = Debug|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Release|Any CPU.Build.0 = Release|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Release|x64.ActiveCfg = Release|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Release|x64.Build.0 = Release|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Release|x86.ActiveCfg = Release|Any CPU
- {AB501F63-8E8C-4333-8A15-81BA02F3C703}.Release|x86.Build.0 = Release|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Debug|x64.ActiveCfg = Debug|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Debug|x64.Build.0 = Debug|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Debug|x86.Build.0 = Debug|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Release|Any CPU.Build.0 = Release|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Release|x64.ActiveCfg = Release|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Release|x64.Build.0 = Release|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Release|x86.ActiveCfg = Release|Any CPU
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF}.Release|x86.Build.0 = Release|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Debug|x64.ActiveCfg = Debug|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Debug|x64.Build.0 = Debug|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Debug|x86.ActiveCfg = Debug|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Debug|x86.Build.0 = Debug|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Release|Any CPU.Build.0 = Release|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Release|x64.ActiveCfg = Release|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Release|x64.Build.0 = Release|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Release|x86.ActiveCfg = Release|Any CPU
- {887E0794-798D-4127-847E-6F68D5C9B334}.Release|x86.Build.0 = Release|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Debug|x64.Build.0 = Debug|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Debug|x86.Build.0 = Debug|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Release|Any CPU.Build.0 = Release|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Release|x64.ActiveCfg = Release|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Release|x64.Build.0 = Release|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Release|x86.ActiveCfg = Release|Any CPU
- {05132055-211C-42D4-B40A-39E4BB066E7B}.Release|x86.Build.0 = Release|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Debug|x64.Build.0 = Debug|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Debug|x86.Build.0 = Debug|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Release|Any CPU.Build.0 = Release|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Release|x64.ActiveCfg = Release|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Release|x64.Build.0 = Release|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Release|x86.ActiveCfg = Release|Any CPU
- {158173F6-E776-422C-9127-8994C504867B}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {F634CA1E-9237-4E69-B23C-91AA6FBCABFF} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}
- {8D85E3BC-6DD8-4F71-93DA-ABE51252CA2A} = {00FFDC13-7397-46F1-897E-A62A7575D28A}
- {C2BA93F6-D2E1-455F-B9FA-6221D087295E} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}
- {CE80554B-E37B-4B52-AA80-1F96DA1AC3EF} = {C2BA93F6-D2E1-455F-B9FA-6221D087295E}
- {0C8AAB85-387C-41D2-ABCE-BAFAF74B62B2} = {C2BA93F6-D2E1-455F-B9FA-6221D087295E}
- {E9A2458B-999D-4D36-822F-663D3830575A} = {C2BA93F6-D2E1-455F-B9FA-6221D087295E}
- {F1F91777-01EA-43A3-A3ED-D473B382F46C} = {00FFDC13-7397-46F1-897E-A62A7575D28A}
- {C4D210AF-C91E-4310-ADE5-881A7DFE8AAA} = {F1F91777-01EA-43A3-A3ED-D473B382F46C}
- {BA05687E-2317-4A65-805B-C596F52F7203} = {F1F91777-01EA-43A3-A3ED-D473B382F46C}
- {367BE810-5B34-4894-BE47-1C8DCC67DE81} = {F1F91777-01EA-43A3-A3ED-D473B382F46C}
- {2E8F565D-9D13-424E-BD86-C5A362F9AAE7} = {F1F91777-01EA-43A3-A3ED-D473B382F46C}
- {8F959801-D494-4CAF-9437-90F30472E169} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}
- {BD42A7D6-A84D-4D27-9C28-7F6A2EC477F1} = {F1F91777-01EA-43A3-A3ED-D473B382F46C}
- {E74664C1-1BB1-4920-8099-2C9125CFD00B} = {8F959801-D494-4CAF-9437-90F30472E169}
- {DB530D15-0556-4B6F-96B2-1497C8DF08D6} = {8F959801-D494-4CAF-9437-90F30472E169}
- {24639CEB-266D-40E1-B0A8-B78BB6F8CEF8} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}
- {BC84ABD6-A230-4367-8E6A-85B6BA1D851A} = {24639CEB-266D-40E1-B0A8-B78BB6F8CEF8}
- {D7B41D0E-CBE4-4846-992F-C955CE45DC08} = {24639CEB-266D-40E1-B0A8-B78BB6F8CEF8}
- {60D92138-66AC-4DC9-973D-FDD917F87112} = {24639CEB-266D-40E1-B0A8-B78BB6F8CEF8}
- {540CEEC1-D541-4614-BF0B-18056A83E434} = {00FFDC13-7397-46F1-897E-A62A7575D28A}
- {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7} = {540CEEC1-D541-4614-BF0B-18056A83E434}
- {8711D306-1118-4A11-9399-EF14AA13015E} = {540CEEC1-D541-4614-BF0B-18056A83E434}
- {8610485A-BE9F-4938-86D4-E9F1FA1739A0} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}
- {0EA416B6-0AB6-464B-9F4D-206FFCFB262D} = {8F959801-D494-4CAF-9437-90F30472E169}
- {8AE1015F-4D62-47EF-A576-2F7411EC20D5} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3}
- {C505C63F-99E6-464F-8C83-1AE4239C19B1} = {8AE1015F-4D62-47EF-A576-2F7411EC20D5}
- {A6B7B19C-3288-4CD2-A737-527BEB1ED807} = {8AE1015F-4D62-47EF-A576-2F7411EC20D5}
- {AB501F63-8E8C-4333-8A15-81BA02F3C703} = {904D5094-55F9-4581-90AC-D6C1131F8152}
- {6FDA7D49-DF44-4E8F-A182-0EB73DD3C452} = {904D5094-55F9-4581-90AC-D6C1131F8152}
- {03B9C775-9582-409F-B67F-6B8A0CE0C7AF} = {904D5094-55F9-4581-90AC-D6C1131F8152}
- {887E0794-798D-4127-847E-6F68D5C9B334} = {904D5094-55F9-4581-90AC-D6C1131F8152}
- {904D5094-55F9-4581-90AC-D6C1131F8152} = {00FFDC13-7397-46F1-897E-A62A7575D28A}
- {8B763117-8E13-0D1A-AFE0-5BC3FACCF29C} = {00FFDC13-7397-46F1-897E-A62A7575D28A}
- {05132055-211C-42D4-B40A-39E4BB066E7B} = {8B763117-8E13-0D1A-AFE0-5BC3FACCF29C}
- {1E1EDCAE-FD32-8442-764F-7F151A12D8D4} = {8F959801-D494-4CAF-9437-90F30472E169}
- {158173F6-E776-422C-9127-8994C504867B} = {8B763117-8E13-0D1A-AFE0-5BC3FACCF29C}
- {064C69BC-4576-336C-79BF-6771226CD9DC} = {8F959801-D494-4CAF-9437-90F30472E169}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- tests\Avalonia\Prism.Container.Avalonia.Shared\Prism.Container.Avalonia.Shared.projitems*{03b9c775-9582-409f-b67f-6b8a0ce0c7af}*SharedItemsImports = 5
- tests\Wpf\Prism.Container.Wpf.Shared\Prism.Container.Wpf.Shared.projitems*{367be810-5b34-4894-be47-1c8dcc67de81}*SharedItemsImports = 5
- tests\Avalonia\Prism.Container.Avalonia.Shared\Prism.Container.Avalonia.Shared.projitems*{6fda7d49-df44-4e8f-a182-0eb73dd3c452}*SharedItemsImports = 13
- tests\Wpf\Prism.Container.Wpf.Shared\Prism.Container.Wpf.Shared.projitems*{ba05687e-2317-4a65-805b-c596f52f7203}*SharedItemsImports = 5
- tests\Wpf\Prism.Container.Wpf.Shared\Prism.Container.Wpf.Shared.projitems*{bd42a7d6-a84d-4d27-9c28-7f6a2ec477f1}*SharedItemsImports = 13
- EndGlobalSection
-EndGlobal
diff --git a/PrismLibrary.slnx b/PrismLibrary.slnx
new file mode 100644
index 0000000000..c06bfccc0b
--- /dev/null
+++ b/PrismLibrary.slnx
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PrismLibrary_Avalonia.slnf b/PrismLibrary_Avalonia.slnf
index 4dc61b7f6e..6487d58d6e 100644
--- a/PrismLibrary_Avalonia.slnf
+++ b/PrismLibrary_Avalonia.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "PrismLibrary.sln",
+ "path": "PrismLibrary.slnx",
"projects": [
"src\\Avalonia\\Prism.Avalonia\\Prism.Avalonia.csproj",
"src\\Avalonia\\Prism.DryIoc.Avalonia\\Prism.DryIoc.Avalonia.csproj",
diff --git a/PrismLibrary_Core.slnf b/PrismLibrary_Core.slnf
index 5cbb22b6ee..e2b855df6b 100644
--- a/PrismLibrary_Core.slnf
+++ b/PrismLibrary_Core.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "PrismLibrary.sln",
+ "path": "PrismLibrary.slnx",
"projects": [
"src\\Prism.Core\\Prism.Core.csproj",
"src\\Prism.Events\\Prism.Events.csproj",
diff --git a/PrismLibrary_Maui.slnf b/PrismLibrary_Maui.slnf
index 0ef9a20368..5614b7ed74 100644
--- a/PrismLibrary_Maui.slnf
+++ b/PrismLibrary_Maui.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "PrismLibrary.sln",
+ "path": "PrismLibrary.slnx",
"projects": [
"src\\Maui\\Prism.DryIoc.Maui\\Prism.DryIoc.Maui.csproj",
"src\\Maui\\Prism.Maui.Rx\\Prism.Maui.Rx.csproj",
diff --git a/PrismLibrary_Uno.slnf b/PrismLibrary_Uno.slnf
index 8b995f6cb8..bc91721461 100644
--- a/PrismLibrary_Uno.slnf
+++ b/PrismLibrary_Uno.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "PrismLibrary.sln",
+ "path": "PrismLibrary.slnx",
"projects": [
"src\\Prism.Core\\Prism.Core.csproj",
"src\\Prism.Events\\Prism.Events.csproj",
diff --git a/PrismLibrary_Wpf.slnf b/PrismLibrary_Wpf.slnf
index 5c212e7638..fbf94aca94 100644
--- a/PrismLibrary_Wpf.slnf
+++ b/PrismLibrary_Wpf.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "PrismLibrary.sln",
+ "path": "PrismLibrary.slnx",
"projects": [
"src\\Prism.Core\\Prism.Core.csproj",
"src\\Prism.Events\\Prism.Events.csproj",
diff --git a/e2e/Avalonia/PrismAvaloniaDemo.sln b/e2e/Avalonia/PrismAvaloniaDemo.sln
deleted file mode 100644
index 903b5aa92c..0000000000
--- a/e2e/Avalonia/PrismAvaloniaDemo.sln
+++ /dev/null
@@ -1,57 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.10.35122.118
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PrismAvaloniaDemo", "PrismAvaloniaDemo\PrismAvaloniaDemo.csproj", "{89EF9B20-B80E-4B4C-A202-170CC0C0B62A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Prism Library", "Prism Library", "{7EEF2BF7-98F5-432B-B36D-DB4915CF4A3D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Avalonia", "..\..\src\Avalonia\Prism.Avalonia\Prism.Avalonia.csproj", "{CD50461C-B394-433A-86CA-3DBCD13E8B22}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Avalonia", "..\..\src\Avalonia\Prism.DryIoc.Avalonia\Prism.DryIoc.Avalonia.csproj", "{FF15E73E-5D71-48DD-80D5-DDCA6A59A6B2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core", "..\..\src\Prism.Core\Prism.Core.csproj", "{62ADE0CF-751D-4AC6-9C2C-21DC12CBD338}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{FE27B57B-F986-44B7-90CE-421034A891B9}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {89EF9B20-B80E-4B4C-A202-170CC0C0B62A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {89EF9B20-B80E-4B4C-A202-170CC0C0B62A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {89EF9B20-B80E-4B4C-A202-170CC0C0B62A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {89EF9B20-B80E-4B4C-A202-170CC0C0B62A}.Release|Any CPU.Build.0 = Release|Any CPU
- {CD50461C-B394-433A-86CA-3DBCD13E8B22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CD50461C-B394-433A-86CA-3DBCD13E8B22}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CD50461C-B394-433A-86CA-3DBCD13E8B22}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CD50461C-B394-433A-86CA-3DBCD13E8B22}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF15E73E-5D71-48DD-80D5-DDCA6A59A6B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF15E73E-5D71-48DD-80D5-DDCA6A59A6B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF15E73E-5D71-48DD-80D5-DDCA6A59A6B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF15E73E-5D71-48DD-80D5-DDCA6A59A6B2}.Release|Any CPU.Build.0 = Release|Any CPU
- {62ADE0CF-751D-4AC6-9C2C-21DC12CBD338}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {62ADE0CF-751D-4AC6-9C2C-21DC12CBD338}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {62ADE0CF-751D-4AC6-9C2C-21DC12CBD338}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {62ADE0CF-751D-4AC6-9C2C-21DC12CBD338}.Release|Any CPU.Build.0 = Release|Any CPU
- {FE27B57B-F986-44B7-90CE-421034A891B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FE27B57B-F986-44B7-90CE-421034A891B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FE27B57B-F986-44B7-90CE-421034A891B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FE27B57B-F986-44B7-90CE-421034A891B9}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {CD50461C-B394-433A-86CA-3DBCD13E8B22} = {7EEF2BF7-98F5-432B-B36D-DB4915CF4A3D}
- {FF15E73E-5D71-48DD-80D5-DDCA6A59A6B2} = {7EEF2BF7-98F5-432B-B36D-DB4915CF4A3D}
- {62ADE0CF-751D-4AC6-9C2C-21DC12CBD338} = {7EEF2BF7-98F5-432B-B36D-DB4915CF4A3D}
- {FE27B57B-F986-44B7-90CE-421034A891B9} = {7EEF2BF7-98F5-432B-B36D-DB4915CF4A3D}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {2E70249F-C31B-4FB3-A901-E3767E3A9FF5}
- EndGlobalSection
-EndGlobal
diff --git a/e2e/Avalonia/PrismAvaloniaDemo.slnx b/e2e/Avalonia/PrismAvaloniaDemo.slnx
new file mode 100644
index 0000000000..e572cd0535
--- /dev/null
+++ b/e2e/Avalonia/PrismAvaloniaDemo.slnx
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/e2e/Maui/MauiModule/ViewModels/ViewDViewModel.cs b/e2e/Maui/MauiModule/ViewModels/ViewDViewModel.cs
index 5f0714e79a..a0e304011e 100644
--- a/e2e/Maui/MauiModule/ViewModels/ViewDViewModel.cs
+++ b/e2e/Maui/MauiModule/ViewModels/ViewDViewModel.cs
@@ -1,9 +1,32 @@
-namespace MauiModule.ViewModels;
+using Prism.Commands;
+using Prism.Dialogs;
+
+namespace MauiModule.ViewModels;
public class ViewDViewModel : ViewModelBase
{
- public ViewDViewModel(BaseServices baseServices)
+ public ViewDViewModel(BaseServices baseServices)
: base(baseServices)
{
+ ShowDialogAsyncThenGoBackCommand = new DelegateCommand(
+ OnShowDialogAsyncThenGoBack,
+ () => !string.IsNullOrEmpty(SelectedDialog))
+ .ObservesProperty(() => SelectedDialog);
+ }
+
+ /// GitHub #3395 — same continuation as await ShowDialogAsync then await GoBackAsync.
+ public DelegateCommand ShowDialogAsyncThenGoBackCommand { get; }
+
+ private async void OnShowDialogAsyncThenGoBack()
+ {
+ var name = SelectedDialog;
+ if (string.IsNullOrEmpty(name))
+ return;
+
+ Messages.Add($"#3395: await ShowDialogAsync({name})…");
+ var dialogResult = await _dialogs.ShowDialogAsync(name);
+ Messages.Add($"#3395: dialog finished (Result={dialogResult.Result}). Awaiting GoBackAsync…");
+ var navResult = await _navigationService.GoBackAsync();
+ Messages.Add($"#3395: GoBackAsync Success={navResult.Success}.");
}
}
diff --git a/e2e/Maui/MauiModule/Views/ViewD.xaml b/e2e/Maui/MauiModule/Views/ViewD.xaml
index a2e2ef587f..7e0b452a56 100644
--- a/e2e/Maui/MauiModule/Views/ViewD.xaml
+++ b/e2e/Maui/MauiModule/Views/ViewD.xaml
@@ -4,10 +4,10 @@
xmlns:loc="clr-namespace:MauiModule.ViewModels"
xmlns:prism="http://prismlibrary.com"
x:Class="MauiModule.Views.ViewD"
- x:DataType="loc:ViewModelBase"
+ x:DataType="loc:ViewDViewModel"
Title="{Binding Title}"
BackgroundColor="White">
-
@@ -63,5 +63,10 @@
Margin="10"
Grid.Row="4"
Grid.Column="0"/>
+
diff --git a/e2e/Maui/MauiRegionsModule/MauiTestRegionsModule.cs b/e2e/Maui/MauiRegionsModule/MauiTestRegionsModule.cs
index f4fb0ee8e0..ceb3c25dd3 100644
--- a/e2e/Maui/MauiRegionsModule/MauiTestRegionsModule.cs
+++ b/e2e/Maui/MauiRegionsModule/MauiTestRegionsModule.cs
@@ -1,4 +1,4 @@
-using MauiRegionsModule.ViewModels;
+using MauiRegionsModule.ViewModels;
using MauiRegionsModule.Views;
namespace MauiRegionsModule;
@@ -16,11 +16,14 @@ public void RegisterTypes(IContainerRegistry containerRegistry)
containerRegistry
.RegisterForNavigation()
.RegisterForNavigation()
+ .RegisterForNavigation()
.RegisterForNavigation()
.RegisterForNavigation()
.RegisterForNavigation()
.RegisterForRegionNavigation()
.RegisterForRegionNavigation()
- .RegisterForRegionNavigation();
+ .RegisterForRegionNavigation()
+ .RegisterForRegionNavigation()
+ .RegisterForRegionNavigation();
}
}
diff --git a/e2e/Maui/MauiRegionsModule/NestedRegionNames.cs b/e2e/Maui/MauiRegionsModule/NestedRegionNames.cs
new file mode 100644
index 0000000000..5c34236656
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/NestedRegionNames.cs
@@ -0,0 +1,9 @@
+namespace MauiRegionsModule;
+
+/// Region names for the nested-regions playground (GitHub #3332).
+public static class NestedRegionNames
+{
+ public const string OuterRegion = "OuterRegion";
+
+ public const string InnerRegion = "InnerRegion";
+}
diff --git a/e2e/Maui/MauiRegionsModule/ViewModels/InnerRegionGuestViewModel.cs b/e2e/Maui/MauiRegionsModule/ViewModels/InnerRegionGuestViewModel.cs
new file mode 100644
index 0000000000..834f0bbeb6
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/ViewModels/InnerRegionGuestViewModel.cs
@@ -0,0 +1,19 @@
+using MauiRegionsModule.Views;
+using Prism.Mvvm;
+using Prism.Navigation.Regions;
+
+namespace MauiRegionsModule.ViewModels;
+
+public class InnerRegionGuestViewModel : BindableBase, IRegionAware
+{
+ public bool IsNavigationTarget(NavigationContext navigationContext) =>
+ navigationContext.NavigatedName() == nameof(InnerRegionGuestView);
+
+ public void OnNavigatedFrom(NavigationContext navigationContext)
+ {
+ }
+
+ public void OnNavigatedTo(NavigationContext navigationContext)
+ {
+ }
+}
diff --git a/e2e/Maui/MauiRegionsModule/ViewModels/NestedRegionPageViewModel.cs b/e2e/Maui/MauiRegionsModule/ViewModels/NestedRegionPageViewModel.cs
new file mode 100644
index 0000000000..88776bae65
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/ViewModels/NestedRegionPageViewModel.cs
@@ -0,0 +1,25 @@
+using MauiRegionsModule;
+using MauiRegionsModule.Views;
+using Prism.Commands;
+using Prism.Mvvm;
+using Prism.Navigation.Regions;
+
+namespace MauiRegionsModule.ViewModels;
+
+/// View model for the nested regions playground page (GitHub #3332).
+public class NestedRegionPageViewModel : BindableBase
+{
+ private readonly IRegionManager _regionManager;
+
+ public NestedRegionPageViewModel(IRegionManager regionManager)
+ {
+ _regionManager = regionManager;
+ NavigateNestedDemoCommand = new DelegateCommand(OnNavigateNestedDemo);
+ }
+
+ /// Navigates the outer region; the outer guest navigates the inner region when it loads (same pattern as community nested-region samples).
+ public DelegateCommand NavigateNestedDemoCommand { get; }
+
+ private void OnNavigateNestedDemo() =>
+ _regionManager.RequestNavigate(NestedRegionNames.OuterRegion, nameof(OuterRegionGuestView));
+}
diff --git a/e2e/Maui/MauiRegionsModule/ViewModels/OuterRegionGuestViewModel.cs b/e2e/Maui/MauiRegionsModule/ViewModels/OuterRegionGuestViewModel.cs
new file mode 100644
index 0000000000..4fb0c25e76
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/ViewModels/OuterRegionGuestViewModel.cs
@@ -0,0 +1,28 @@
+using MauiRegionsModule;
+using MauiRegionsModule.Views;
+using Prism.Mvvm;
+using Prism.Navigation.Regions;
+
+namespace MauiRegionsModule.ViewModels;
+
+///
+/// Outer region guest — navigates the inner region on arrival, matching the flow in the community sample
+/// NestedRegionsNotInjectableOnAndroidIssue (R8MC).
+///
+public class OuterRegionGuestViewModel : BindableBase, IRegionAware
+{
+ private readonly IRegionManager _regionManager;
+
+ public OuterRegionGuestViewModel(IRegionManager regionManager) =>
+ _regionManager = regionManager;
+
+ public bool IsNavigationTarget(NavigationContext navigationContext) =>
+ navigationContext.NavigatedName() == nameof(OuterRegionGuestView);
+
+ public void OnNavigatedFrom(NavigationContext navigationContext)
+ {
+ }
+
+ public void OnNavigatedTo(NavigationContext navigationContext) =>
+ _regionManager.RequestNavigate(NestedRegionNames.InnerRegion, nameof(InnerRegionGuestView));
+}
diff --git a/e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml b/e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml
new file mode 100644
index 0000000000..1f2ea5269b
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml.cs b/e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml.cs
new file mode 100644
index 0000000000..03d438dd14
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml.cs
@@ -0,0 +1,9 @@
+namespace MauiRegionsModule.Views;
+
+public partial class InnerRegionGuestView : ContentView
+{
+ public InnerRegionGuestView()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/e2e/Maui/MauiRegionsModule/Views/NestedRegionPage.xaml b/e2e/Maui/MauiRegionsModule/Views/NestedRegionPage.xaml
new file mode 100644
index 0000000000..e566e7d41c
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/Views/NestedRegionPage.xaml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/e2e/Maui/MauiRegionsModule/Views/NestedRegionPage.xaml.cs b/e2e/Maui/MauiRegionsModule/Views/NestedRegionPage.xaml.cs
new file mode 100644
index 0000000000..fc6206d39a
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/Views/NestedRegionPage.xaml.cs
@@ -0,0 +1,9 @@
+namespace MauiRegionsModule.Views;
+
+public partial class NestedRegionPage : ContentPage
+{
+ public NestedRegionPage()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/e2e/Maui/MauiRegionsModule/Views/OuterRegionGuestView.xaml b/e2e/Maui/MauiRegionsModule/Views/OuterRegionGuestView.xaml
new file mode 100644
index 0000000000..8558b1b344
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/Views/OuterRegionGuestView.xaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/e2e/Maui/MauiRegionsModule/Views/OuterRegionGuestView.xaml.cs b/e2e/Maui/MauiRegionsModule/Views/OuterRegionGuestView.xaml.cs
new file mode 100644
index 0000000000..2508c86428
--- /dev/null
+++ b/e2e/Maui/MauiRegionsModule/Views/OuterRegionGuestView.xaml.cs
@@ -0,0 +1,22 @@
+namespace MauiRegionsModule.Views;
+
+///
+/// Outer region guest with an inner region (GitHub #3332).
+/// When this view receives a non-zero size, the inner host is invalidated so layout runs without page-level code-behind.
+///
+public partial class OuterRegionGuestView : ContentView
+{
+ public OuterRegionGuestView()
+ {
+ InitializeComponent();
+ SizeChanged += OnSizeChanged;
+ }
+
+ void OnSizeChanged(object? sender, EventArgs e)
+ {
+ if (Width <= 0 || Height <= 0)
+ return;
+
+ InnerRegionHostView.InvalidateMeasure();
+ }
+}
diff --git a/e2e/Maui/MauiRegionsModule/Views/RegionHome.xaml b/e2e/Maui/MauiRegionsModule/Views/RegionHome.xaml
index e22942a4ca..b7cb50c27e 100644
--- a/e2e/Maui/MauiRegionsModule/Views/RegionHome.xaml
+++ b/e2e/Maui/MauiRegionsModule/Views/RegionHome.xaml
@@ -18,6 +18,9 @@
+
diff --git a/e2e/Maui/PrismMauiDemo.sln b/e2e/Maui/PrismMauiDemo.sln
deleted file mode 100644
index 3b50e47146..0000000000
--- a/e2e/Maui/PrismMauiDemo.sln
+++ /dev/null
@@ -1,108 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MauiModule", "MauiModule\MauiModule.csproj", "{3B47AE8B-3773-4920-A012-B42182742ACA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MauiRegionsModule", "MauiRegionsModule\MauiRegionsModule.csproj", "{2FF1C748-EA4C-45B1-80BA-A7D9E9E2C8F9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PrismMauiDemo", "PrismMauiDemo\PrismMauiDemo.csproj", "{BB949746-5591-41FB-80B1-65BE609F6A0E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core", "..\..\src\Prism.Core\Prism.Core.csproj", "{2323BE09-7036-4FA7-B5B5-63046BE825E8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui", "..\..\src\Maui\Prism.Maui\Prism.Maui.csproj", "{2B756425-AB8D-4A78-80C5-13EA97C1AC73}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui.Rx", "..\..\src\Maui\Prism.Maui.Rx\Prism.Maui.Rx.csproj", "{CC05A6F0-D8FF-498C-80F0-59DC9AAEB08E}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8202B92A-A573-4365-8A15-E246504A7CBD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Maui", "..\..\src\Maui\Prism.DryIoc.Maui\Prism.DryIoc.Maui.csproj", "{2CE09D7A-B67C-4586-8432-64EA2D1A3CE4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{E91F80AA-3D61-4C28-B876-3EDFB5921E7D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Maui.Tests", "..\..\tests\Maui\Prism.DryIoc.Maui.Tests\Prism.DryIoc.Maui.Tests.csproj", "{EE6F0C99-61D1-4E2E-8185-FBA0D246D5C7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui.Tests", "..\..\tests\Maui\Prism.Maui.Tests\Prism.Maui.Tests.csproj", "{F3D2DFDB-95FB-4CBB-A624-35EB6550854D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core.Tests", "..\..\tests\Prism.Core.Tests\Prism.Core.Tests.csproj", "{E0F13AA9-8083-47CA-B10D-93C5285D1505}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{5623CB62-59C1-49BC-BB16-4C5D63D82DAC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{16C4C33B-CC0F-4FA4-A117-B9EF161CB7B8}"
- ProjectSection(SolutionItems) = preProject
- ..\..\Directory.Packages.props = ..\..\Directory.Packages.props
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {3B47AE8B-3773-4920-A012-B42182742ACA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B47AE8B-3773-4920-A012-B42182742ACA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B47AE8B-3773-4920-A012-B42182742ACA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B47AE8B-3773-4920-A012-B42182742ACA}.Release|Any CPU.Build.0 = Release|Any CPU
- {2FF1C748-EA4C-45B1-80BA-A7D9E9E2C8F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2FF1C748-EA4C-45B1-80BA-A7D9E9E2C8F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2FF1C748-EA4C-45B1-80BA-A7D9E9E2C8F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2FF1C748-EA4C-45B1-80BA-A7D9E9E2C8F9}.Release|Any CPU.Build.0 = Release|Any CPU
- {BB949746-5591-41FB-80B1-65BE609F6A0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BB949746-5591-41FB-80B1-65BE609F6A0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BB949746-5591-41FB-80B1-65BE609F6A0E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {BB949746-5591-41FB-80B1-65BE609F6A0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BB949746-5591-41FB-80B1-65BE609F6A0E}.Release|Any CPU.Build.0 = Release|Any CPU
- {2323BE09-7036-4FA7-B5B5-63046BE825E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2323BE09-7036-4FA7-B5B5-63046BE825E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2323BE09-7036-4FA7-B5B5-63046BE825E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2323BE09-7036-4FA7-B5B5-63046BE825E8}.Release|Any CPU.Build.0 = Release|Any CPU
- {2B756425-AB8D-4A78-80C5-13EA97C1AC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2B756425-AB8D-4A78-80C5-13EA97C1AC73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2B756425-AB8D-4A78-80C5-13EA97C1AC73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2B756425-AB8D-4A78-80C5-13EA97C1AC73}.Release|Any CPU.Build.0 = Release|Any CPU
- {CC05A6F0-D8FF-498C-80F0-59DC9AAEB08E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CC05A6F0-D8FF-498C-80F0-59DC9AAEB08E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CC05A6F0-D8FF-498C-80F0-59DC9AAEB08E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CC05A6F0-D8FF-498C-80F0-59DC9AAEB08E}.Release|Any CPU.Build.0 = Release|Any CPU
- {2CE09D7A-B67C-4586-8432-64EA2D1A3CE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CE09D7A-B67C-4586-8432-64EA2D1A3CE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2CE09D7A-B67C-4586-8432-64EA2D1A3CE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CE09D7A-B67C-4586-8432-64EA2D1A3CE4}.Release|Any CPU.Build.0 = Release|Any CPU
- {EE6F0C99-61D1-4E2E-8185-FBA0D246D5C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EE6F0C99-61D1-4E2E-8185-FBA0D246D5C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EE6F0C99-61D1-4E2E-8185-FBA0D246D5C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EE6F0C99-61D1-4E2E-8185-FBA0D246D5C7}.Release|Any CPU.Build.0 = Release|Any CPU
- {F3D2DFDB-95FB-4CBB-A624-35EB6550854D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F3D2DFDB-95FB-4CBB-A624-35EB6550854D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F3D2DFDB-95FB-4CBB-A624-35EB6550854D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F3D2DFDB-95FB-4CBB-A624-35EB6550854D}.Release|Any CPU.Build.0 = Release|Any CPU
- {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Release|Any CPU.Build.0 = Release|Any CPU
- {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {2323BE09-7036-4FA7-B5B5-63046BE825E8} = {8202B92A-A573-4365-8A15-E246504A7CBD}
- {2B756425-AB8D-4A78-80C5-13EA97C1AC73} = {8202B92A-A573-4365-8A15-E246504A7CBD}
- {CC05A6F0-D8FF-498C-80F0-59DC9AAEB08E} = {8202B92A-A573-4365-8A15-E246504A7CBD}
- {2CE09D7A-B67C-4586-8432-64EA2D1A3CE4} = {8202B92A-A573-4365-8A15-E246504A7CBD}
- {EE6F0C99-61D1-4E2E-8185-FBA0D246D5C7} = {E91F80AA-3D61-4C28-B876-3EDFB5921E7D}
- {F3D2DFDB-95FB-4CBB-A624-35EB6550854D} = {E91F80AA-3D61-4C28-B876-3EDFB5921E7D}
- {E0F13AA9-8083-47CA-B10D-93C5285D1505} = {E91F80AA-3D61-4C28-B876-3EDFB5921E7D}
- {5623CB62-59C1-49BC-BB16-4C5D63D82DAC} = {8202B92A-A573-4365-8A15-E246504A7CBD}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {50B0D1F3-D832-4C6C-858E-24F5F3B33632}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- ..\..\src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{2ce09d7a-b67c-4586-8432-64ea2d1a3ce4}*SharedItemsImports = 5
- EndGlobalSection
-EndGlobal
diff --git a/e2e/Maui/PrismMauiDemo.slnx b/e2e/Maui/PrismMauiDemo.slnx
new file mode 100644
index 0000000000..8bddf07ac3
--- /dev/null
+++ b/e2e/Maui/PrismMauiDemo.slnx
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/e2e/Maui/PrismMauiDemo/MauiProgram.cs b/e2e/Maui/PrismMauiDemo/MauiProgram.cs
index c487966737..f0ffe68328 100644
--- a/e2e/Maui/PrismMauiDemo/MauiProgram.cs
+++ b/e2e/Maui/PrismMauiDemo/MauiProgram.cs
@@ -38,13 +38,13 @@ public static MauiApp CreateMauiApp()
if (status == "Failed" && !string.IsNullOrEmpty(x.Result?.Exception?.Message))
Console.Error.WriteLine(x.Result.Exception.Message);
}))
- //.CreateWindow(navigationService => navigationService.CreateBuilder()
- // .AddSegment()
- .CreateWindow(nav => nav.CreateBuilder()
- .AddTabbedSegment(page =>
- page.CreateTab(t => t.AddNavigationPage().AddSegment("ViewA").AddSegment("ViewB"))
- .CreateTab(t => t.AddNavigationPage().AddSegment("ViewA"))
- )
+ .CreateWindow(navigationService => navigationService.CreateBuilder()
+ .AddSegment()
+ //.CreateWindow(nav => nav.CreateBuilder()
+ // .AddTabbedSegment(page =>
+ // page.CreateTab(t => t.AddNavigationPage().AddSegment("ViewA").AddSegment("ViewB"))
+ // .CreateTab(t => t.AddNavigationPage().AddSegment("ViewA"))
+ // )
.NavigateAsync(HandleNavigationError))
)
//.CreateWindow(nav => nav.CreateBuilder()
diff --git a/e2e/Uno/HelloWorld.sln b/e2e/Uno/HelloWorld.sln
deleted file mode 100644
index 9fc9f03958..0000000000
--- a/e2e/Uno/HelloWorld.sln
+++ /dev/null
@@ -1,488 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.2.32210.308
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sample", "sample", "{5E74EB0D-FBD3-4399-8F38-AD888DEFFC73}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{660A1FE2-C440-402C-A5DC-6901F5FBED61}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld", "HelloWorld\HelloWorld.csproj", "{09C2B6C8-E492-49E7-A598-18E8881646C8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Mobile", "HelloWorld.Mobile\HelloWorld.Mobile.csproj", "{980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Wasm", "HelloWorld.Wasm\HelloWorld.Wasm.csproj", "{98201B97-26AE-4FA1-845C-AC7FE025848D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Skia.Gtk", "HelloWorld.Skia.Gtk\HelloWorld.Skia.Gtk.csproj", "{39B16098-4E39-49C4-9C74-BD5D809F4432}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Skia.WPF", "HelloWorld.Skia.WPF\HelloWorld.Skia.WPF.csproj", "{7D45AF78-BEC3-44AD-9A8C-3784FB638495}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Windows", "HelloWorld.Windows\HelloWorld.Windows.csproj", "{92F6D561-4134-444D-8E86-4AD4BF6443C7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Skia.Linux.FrameBuffer", "HelloWorld.Skia.Linux.FrameBuffer\HelloWorld.Skia.Linux.FrameBuffer.csproj", "{B4A1BD15-DA72-4933-BD26-01E5E43279F8}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BADA71DC-7FFD-4EDC-9F28-FB74AEADC713}"
- ProjectSection(SolutionItems) = preProject
- Directory.Build.props = Directory.Build.props
- Directory.Build.targets = Directory.Build.targets
- ..\..\Directory.Packages.props = ..\..\Directory.Packages.props
- ..\..\global.json = ..\..\global.json
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2C5D7523-6030-4B75-ABE0-3CB8AA0953CB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core", "..\..\src\Prism.Core\Prism.Core.csproj", "{F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Uno.WinUI", "..\..\src\Uno\Prism.Uno\Prism.Uno.WinUI.csproj", "{FDA1EB82-8ED3-4284-842D-9E7732CB328C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Uno.WinUI", "..\..\src\Uno\Prism.DryIoc.Uno\Prism.DryIoc.Uno.WinUI.csproj", "{8D59D64C-EAF1-4BF7-9E69-556114C96A95}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{F67BA438-F236-460B-B279-A71AB8033B54}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModuleA", "ModuleA\ModuleA.csproj", "{5AD22541-BC5D-45E0-9C95-87B51300FF1C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld.Shared", "HelloWorld.Shared\HelloWorld.Shared.csproj", "{28A534A3-3ADA-4435-B5F5-59FA61DF23EF}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|ARM = Debug|ARM
- Debug|ARM64 = Debug|ARM64
- Debug|iPhone = Debug|iPhone
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|ARM = Release|ARM
- Release|ARM64 = Release|ARM64
- Release|iPhone = Release|iPhone
- Release|iPhoneSimulator = Release|iPhoneSimulator
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|ARM.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|ARM64.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|iPhone.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|x64.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Debug|x86.Build.0 = Debug|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|ARM.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|ARM.Build.0 = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|ARM64.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|ARM64.Build.0 = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|iPhone.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|iPhone.Build.0 = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|x64.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|x64.Build.0 = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|x86.ActiveCfg = Release|Any CPU
- {09C2B6C8-E492-49E7-A598-18E8881646C8}.Release|x86.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|ARM.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|ARM.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|ARM64.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|ARM64.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|iPhone.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|iPhone.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|x64.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|x64.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|x64.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|x86.Build.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Debug|x86.Deploy.0 = Debug|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|Any CPU.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|Any CPU.Deploy.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|ARM.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|ARM.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|ARM.Deploy.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|ARM64.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|ARM64.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|ARM64.Deploy.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|iPhone.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|iPhone.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|iPhone.Deploy.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|x64.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|x64.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|x64.Deploy.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|x86.ActiveCfg = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|x86.Build.0 = Release|Any CPU
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF}.Release|x86.Deploy.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|ARM.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|ARM64.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|iPhone.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|x64.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|x64.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Debug|x86.Build.0 = Debug|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|Any CPU.Build.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|ARM.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|ARM.Build.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|ARM64.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|ARM64.Build.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|iPhone.Build.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|x64.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|x64.Build.0 = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|x86.ActiveCfg = Release|Any CPU
- {98201B97-26AE-4FA1-845C-AC7FE025848D}.Release|x86.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|ARM.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|ARM64.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|iPhone.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|x64.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|x64.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|x86.ActiveCfg = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Debug|x86.Build.0 = Debug|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|Any CPU.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|ARM.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|ARM.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|ARM64.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|ARM64.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|iPhone.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|iPhone.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|x64.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|x64.Build.0 = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|x86.ActiveCfg = Release|Any CPU
- {39B16098-4E39-49C4-9C74-BD5D809F4432}.Release|x86.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|ARM.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|ARM.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|ARM64.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|ARM64.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|iPhone.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|iPhone.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|x64.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|x64.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|x64.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|x86.Build.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Debug|x86.Deploy.0 = Debug|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|ARM.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|ARM.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|ARM.Deploy.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|ARM64.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|ARM64.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|ARM64.Deploy.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|iPhone.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|iPhone.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|x64.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|x64.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|x64.Deploy.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|x86.ActiveCfg = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|x86.Build.0 = Release|Any CPU
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495}.Release|x86.Deploy.0 = Release|Any CPU
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|Any CPU.ActiveCfg = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|Any CPU.Build.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|Any CPU.Deploy.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|ARM.ActiveCfg = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|ARM.Build.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|ARM.Deploy.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|ARM64.ActiveCfg = Debug|arm64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|ARM64.Build.0 = Debug|arm64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|ARM64.Deploy.0 = Debug|arm64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|iPhone.ActiveCfg = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|iPhone.Build.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|iPhone.Deploy.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|iPhoneSimulator.ActiveCfg = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|iPhoneSimulator.Build.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|iPhoneSimulator.Deploy.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|x64.ActiveCfg = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|x64.Build.0 = Debug|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|x86.ActiveCfg = Debug|x86
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Debug|x86.Build.0 = Debug|x86
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|Any CPU.ActiveCfg = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|Any CPU.Build.0 = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|Any CPU.Deploy.0 = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|ARM.ActiveCfg = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|ARM.Build.0 = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|ARM64.ActiveCfg = Release|arm64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|ARM64.Build.0 = Release|arm64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|iPhone.ActiveCfg = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|iPhone.Build.0 = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|iPhoneSimulator.ActiveCfg = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|iPhoneSimulator.Build.0 = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|x64.ActiveCfg = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|x64.Build.0 = Release|x64
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|x86.ActiveCfg = Release|x86
- {92F6D561-4134-444D-8E86-4AD4BF6443C7}.Release|x86.Build.0 = Release|x86
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|ARM.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|ARM64.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|iPhone.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|x64.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Debug|x86.Build.0 = Debug|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|Any CPU.Build.0 = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|ARM.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|ARM.Build.0 = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|ARM64.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|ARM64.Build.0 = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|iPhone.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|iPhone.Build.0 = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|x64.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|x64.Build.0 = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|x86.ActiveCfg = Release|Any CPU
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8}.Release|x86.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|ARM.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|ARM64.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|iPhone.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|x64.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Debug|x86.Build.0 = Debug|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|Any CPU.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|ARM.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|ARM.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|ARM64.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|ARM64.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|iPhone.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|iPhone.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|x64.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|x64.Build.0 = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|x86.ActiveCfg = Release|Any CPU
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882}.Release|x86.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|ARM.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|ARM64.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|x64.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Debug|x86.Build.0 = Debug|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|Any CPU.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|ARM.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|ARM.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|ARM64.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|ARM64.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|iPhone.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|x64.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|x64.Build.0 = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|x86.ActiveCfg = Release|Any CPU
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C}.Release|x86.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|ARM.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|ARM64.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|iPhone.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|x64.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Debug|x86.Build.0 = Debug|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|Any CPU.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|ARM.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|ARM.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|ARM64.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|ARM64.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|iPhone.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|iPhone.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|x64.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|x64.Build.0 = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|x86.ActiveCfg = Release|Any CPU
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95}.Release|x86.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|ARM.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|ARM64.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|x64.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Debug|x86.Build.0 = Debug|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|Any CPU.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|ARM.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|ARM.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|ARM64.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|ARM64.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|iPhone.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x64.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x64.Build.0 = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x86.ActiveCfg = Release|Any CPU
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x86.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM64.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhone.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x64.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x64.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x86.ActiveCfg = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x86.Build.0 = Debug|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|Any CPU.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM64.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM64.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhone.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhone.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x64.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x64.Build.0 = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x86.ActiveCfg = Release|Any CPU
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x86.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|ARM64.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhone.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x64.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x64.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Debug|x86.Build.0 = Debug|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|Any CPU.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM64.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|ARM64.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhone.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhone.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x64.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x64.Build.0 = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x86.ActiveCfg = Release|Any CPU
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {660A1FE2-C440-402C-A5DC-6901F5FBED61} = {5E74EB0D-FBD3-4399-8F38-AD888DEFFC73}
- {09C2B6C8-E492-49E7-A598-18E8881646C8} = {5E74EB0D-FBD3-4399-8F38-AD888DEFFC73}
- {980A4C78-FF3E-4D3B-8D8C-FE78ADFCC3DF} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- {98201B97-26AE-4FA1-845C-AC7FE025848D} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- {39B16098-4E39-49C4-9C74-BD5D809F4432} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- {7D45AF78-BEC3-44AD-9A8C-3784FB638495} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- {92F6D561-4134-444D-8E86-4AD4BF6443C7} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- {B4A1BD15-DA72-4933-BD26-01E5E43279F8} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- {F6F81EE6-24C6-4D4E-A38D-8C4ECADF5882} = {2C5D7523-6030-4B75-ABE0-3CB8AA0953CB}
- {FDA1EB82-8ED3-4284-842D-9E7732CB328C} = {2C5D7523-6030-4B75-ABE0-3CB8AA0953CB}
- {8D59D64C-EAF1-4BF7-9E69-556114C96A95} = {2C5D7523-6030-4B75-ABE0-3CB8AA0953CB}
- {F67BA438-F236-460B-B279-A71AB8033B54} = {5E74EB0D-FBD3-4399-8F38-AD888DEFFC73}
- {5AD22541-BC5D-45E0-9C95-87B51300FF1C} = {F67BA438-F236-460B-B279-A71AB8033B54}
- {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930} = {2C5D7523-6030-4B75-ABE0-3CB8AA0953CB}
- {28A534A3-3ADA-4435-B5F5-59FA61DF23EF} = {660A1FE2-C440-402C-A5DC-6901F5FBED61}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {757C5D89-969E-4F38-B8F1-3098C8E17307}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- ..\..\src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{8d59d64c-eaf1-4bf7-9e69-556114c96a95}*SharedItemsImports = 5
- EndGlobalSection
-EndGlobal
diff --git a/e2e/Uno/HelloWorld.slnx b/e2e/Uno/HelloWorld.slnx
new file mode 100644
index 0000000000..169f467476
--- /dev/null
+++ b/e2e/Uno/HelloWorld.slnx
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/e2e/Wpf/HelloWorld.sln b/e2e/Wpf/HelloWorld.sln
deleted file mode 100644
index 4693daaaf9..0000000000
--- a/e2e/Wpf/HelloWorld.sln
+++ /dev/null
@@ -1,89 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.12.35707.178 d17.12
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorld", "HelloWorld\HelloWorld.csproj", "{B03C14CC-8DE9-40EE-9562-12B976E4CEE8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core", "..\..\src\Prism.Core\Prism.Core.csproj", "{457AA668-72BB-4701-9A4E-FA86B0C412DE}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Prism Library", "Prism Library", "{15CF1FE1-D78E-4E3D-A9F8-FA0FCC56A83A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Wpf", "..\..\src\Wpf\Prism.Wpf\Prism.Wpf.csproj", "{AA8ED3D6-A708-4187-8FAC-00F56E063AD7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Wpf", "..\..\src\Wpf\Prism.DryIoc.Wpf\Prism.DryIoc.Wpf.csproj", "{A0842858-BFD5-41AE-BDE7-CBD870BC9900}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Unity.Wpf", "..\..\src\Wpf\Prism.Unity.Wpf\Prism.Unity.Wpf.csproj", "{DEBADAAB-5C78-444E-AA77-336A43B49EC3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.Bootstrapper", "HelloWorld.Bootstraper\HelloWorld.Bootstrapper.csproj", "{36C11381-D25A-4E40-956F-05E9C440FA86}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.Modules.ModuleA", "Modules\HelloWorld.Modules.ModuleA\HelloWorld.Modules.ModuleA.csproj", "{D16AADD5-6EAA-446A-83F5-9DFC36DD4108}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.Core", "HelloWorld.Core\HelloWorld.Core.csproj", "{F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{63541838-3D6A-4F2E-92EF-AC4953BB9B9B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{E35BF062-652E-4520-8DD8-55DC80012D57}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B03C14CC-8DE9-40EE-9562-12B976E4CEE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B03C14CC-8DE9-40EE-9562-12B976E4CEE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B03C14CC-8DE9-40EE-9562-12B976E4CEE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B03C14CC-8DE9-40EE-9562-12B976E4CEE8}.Release|Any CPU.Build.0 = Release|Any CPU
- {457AA668-72BB-4701-9A4E-FA86B0C412DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {457AA668-72BB-4701-9A4E-FA86B0C412DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {457AA668-72BB-4701-9A4E-FA86B0C412DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {457AA668-72BB-4701-9A4E-FA86B0C412DE}.Release|Any CPU.Build.0 = Release|Any CPU
- {AA8ED3D6-A708-4187-8FAC-00F56E063AD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AA8ED3D6-A708-4187-8FAC-00F56E063AD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AA8ED3D6-A708-4187-8FAC-00F56E063AD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AA8ED3D6-A708-4187-8FAC-00F56E063AD7}.Release|Any CPU.Build.0 = Release|Any CPU
- {A0842858-BFD5-41AE-BDE7-CBD870BC9900}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A0842858-BFD5-41AE-BDE7-CBD870BC9900}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A0842858-BFD5-41AE-BDE7-CBD870BC9900}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A0842858-BFD5-41AE-BDE7-CBD870BC9900}.Release|Any CPU.Build.0 = Release|Any CPU
- {DEBADAAB-5C78-444E-AA77-336A43B49EC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DEBADAAB-5C78-444E-AA77-336A43B49EC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DEBADAAB-5C78-444E-AA77-336A43B49EC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DEBADAAB-5C78-444E-AA77-336A43B49EC3}.Release|Any CPU.Build.0 = Release|Any CPU
- {36C11381-D25A-4E40-956F-05E9C440FA86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {36C11381-D25A-4E40-956F-05E9C440FA86}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {36C11381-D25A-4E40-956F-05E9C440FA86}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {36C11381-D25A-4E40-956F-05E9C440FA86}.Release|Any CPU.Build.0 = Release|Any CPU
- {D16AADD5-6EAA-446A-83F5-9DFC36DD4108}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D16AADD5-6EAA-446A-83F5-9DFC36DD4108}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D16AADD5-6EAA-446A-83F5-9DFC36DD4108}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D16AADD5-6EAA-446A-83F5-9DFC36DD4108}.Release|Any CPU.Build.0 = Release|Any CPU
- {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Release|Any CPU.Build.0 = Release|Any CPU
- {E35BF062-652E-4520-8DD8-55DC80012D57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E35BF062-652E-4520-8DD8-55DC80012D57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E35BF062-652E-4520-8DD8-55DC80012D57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E35BF062-652E-4520-8DD8-55DC80012D57}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {457AA668-72BB-4701-9A4E-FA86B0C412DE} = {15CF1FE1-D78E-4E3D-A9F8-FA0FCC56A83A}
- {AA8ED3D6-A708-4187-8FAC-00F56E063AD7} = {15CF1FE1-D78E-4E3D-A9F8-FA0FCC56A83A}
- {A0842858-BFD5-41AE-BDE7-CBD870BC9900} = {15CF1FE1-D78E-4E3D-A9F8-FA0FCC56A83A}
- {DEBADAAB-5C78-444E-AA77-336A43B49EC3} = {15CF1FE1-D78E-4E3D-A9F8-FA0FCC56A83A}
- {D16AADD5-6EAA-446A-83F5-9DFC36DD4108} = {63541838-3D6A-4F2E-92EF-AC4953BB9B9B}
- {E35BF062-652E-4520-8DD8-55DC80012D57} = {15CF1FE1-D78E-4E3D-A9F8-FA0FCC56A83A}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D877B086-37FD-4AA5-8AB3-CF7E87E27425}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- ..\..\src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{a0842858-bfd5-41ae-bde7-cbd870bc9900}*SharedItemsImports = 5
- ..\..\src\Containers\Prism.Unity.Shared\Prism.Unity.Shared.projitems*{debadaab-5c78-444e-aa77-336a43b49ec3}*SharedItemsImports = 5
- EndGlobalSection
-EndGlobal
diff --git a/e2e/Wpf/HelloWorld.slnx b/e2e/Wpf/HelloWorld.slnx
new file mode 100644
index 0000000000..6aef2e3614
--- /dev/null
+++ b/e2e/Wpf/HelloWorld.slnx
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Maui/Prism.Maui/Behaviors/ElementParentedCallbackBehavior.cs b/src/Maui/Prism.Maui/Behaviors/ElementParentedCallbackBehavior.cs
index ec4c6f8d8e..5ad2fcf3d0 100644
--- a/src/Maui/Prism.Maui/Behaviors/ElementParentedCallbackBehavior.cs
+++ b/src/Maui/Prism.Maui/Behaviors/ElementParentedCallbackBehavior.cs
@@ -6,7 +6,8 @@ namespace Prism.Behaviors;
internal class ElementParentedCallbackBehavior : Behavior
{
- private Action _callback { get; }
+ private readonly Action _callback;
+ private VisualElement? _target;
public ElementParentedCallbackBehavior(Action callback)
{
@@ -15,11 +16,16 @@ public ElementParentedCallbackBehavior(Action callback)
protected override void OnAttachedTo(VisualElement view)
{
+ _target = view;
+
if (view.TryGetParentPage(out var page))
{
var container = page.GetContainerProvider();
if (container is null)
+ {
+ page.PropertyChanged -= PagePropertyChanged;
page.PropertyChanged += PagePropertyChanged;
+ }
else
{
view.SetContainerProvider(container);
@@ -32,22 +38,46 @@ protected override void OnAttachedTo(VisualElement view)
}
}
+ protected override void OnDetachingFrom(VisualElement view)
+ {
+ view.ParentChanged -= OnParentChanged;
+ if (view.Parent is VisualElement directParent)
+ directParent.ParentChanged -= OnParentChanged;
+
+ if (view.TryGetParentPage(out var page))
+ page.PropertyChanged -= PagePropertyChanged;
+
+ _target = null;
+ base.OnDetachingFrom(view);
+ }
+
private void OnParentChanged(object sender, EventArgs e)
{
- if (sender is not VisualElement view || view.Parent is null)
+ // Use _target: when listening on Parent.ParentChanged, sender is the parent, not the region host (#3332).
+ var view = _target;
+ if (view?.Parent is null)
return;
- else if (view.TryGetParentPage(out var page))
+
+ if (view.TryGetParentPage(out var page))
{
- if(page.GetContainerProvider() is not null)
+ if (page.GetContainerProvider() is not null)
{
view.ParentChanged -= OnParentChanged;
+ if (view.Parent is VisualElement directParent)
+ directParent.ParentChanged -= OnParentChanged;
+
_callback();
return;
}
+
+ page.PropertyChanged -= PagePropertyChanged;
page.PropertyChanged += PagePropertyChanged;
}
- else
- view.Parent.ParentChanged += OnParentChanged;
+ else if (view.Parent is VisualElement parent)
+ {
+ parent.ParentChanged -= OnParentChanged;
+ parent.ParentChanged += OnParentChanged;
+ }
view.ParentChanged -= OnParentChanged;
}
@@ -59,7 +89,7 @@ private void PagePropertyChanged(object sender, PropertyChangedEventArgs e)
var container = page.GetContainerProvider();
- if(container is not null)
+ if (container is not null)
{
page.PropertyChanged -= PagePropertyChanged;
_callback();
diff --git a/src/Maui/Prism.Maui/Dialogs/DialogContainerPage.cs b/src/Maui/Prism.Maui/Dialogs/DialogContainerPage.cs
index ad3cd0de2b..04c2c60502 100644
--- a/src/Maui/Prism.Maui/Dialogs/DialogContainerPage.cs
+++ b/src/Maui/Prism.Maui/Dialogs/DialogContainerPage.cs
@@ -1,7 +1,8 @@
-using System.ComponentModel;
+using System.ComponentModel;
using System.Windows.Input;
using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
+using Microsoft.Maui.Dispatching;
using Microsoft.Maui.Layouts;
using Prism.Dialogs.Xaml;
using Application = Microsoft.Maui.Controls.Application;
@@ -20,6 +21,12 @@ public class DialogContainerPage : ContentPage, IDialogContainer
///
public const string AutomationIdName = "PrismDialogModal";
+ ///
+ /// When runs (including re-entrantly while is awaiting),
+ /// we must not add this instance to after the modal was already removed.
+ ///
+ bool _closedBeforeOrDuringPush;
+
///
/// Initializes a new instance of the class.
///
@@ -30,6 +37,23 @@ public DialogContainerPage()
On().SetModalPresentationStyle(UIModalPresentationStyle.OverFullScreen);
}
+ static IDispatcher? GetDialogDispatcher(Page currentPage) =>
+ currentPage.Dispatcher ?? Application.Current?.Dispatcher;
+
+ static async Task DispatchModalAsync(Page currentPage, Func work)
+ {
+ var dispatcher = GetDialogDispatcher(currentPage);
+ // No dispatcher (e.g. some test hosts), or already on the UI thread—including re-entrant DoPop during
+ // PushModalAsync: run inline so we do not nest DispatchAsync and deadlock the dispatcher queue.
+ if (dispatcher is null || !dispatcher.IsDispatchRequired)
+ {
+ await work().ConfigureAwait(true);
+ return;
+ }
+
+ await dispatcher.DispatchAsync(work).ConfigureAwait(false);
+ }
+
///
/// Gets the dialog view displayed in the container page.
///
@@ -51,6 +75,7 @@ public DialogContainerPage()
/// A task representing the asynchronous operation.
public async Task ConfigureLayout(Page currentPage, View dialogView, bool hideOnBackgroundTapped, ICommand dismissCommand, IDialogParameters parameters)
{
+ _closedBeforeOrDuringPush = false;
Dismiss = dismissCommand;
DialogView = dialogView;
Content = GetContentLayout(currentPage, dialogView, hideOnBackgroundTapped, dismissCommand, parameters);
@@ -65,7 +90,14 @@ public async Task ConfigureLayout(Page currentPage, View dialogView, bool hideOn
/// A task representing the asynchronous operation.
protected virtual async Task DoPush(Page currentPage)
{
- await currentPage.Navigation.PushModalAsync(this, false);
+ await DispatchModalAsync(currentPage, async () =>
+ {
+ await currentPage.Navigation.PushModalAsync(this, false);
+ if (_closedBeforeOrDuringPush)
+ return;
+
+ IDialogContainer.DialogStack.Add(this);
+ });
}
///
@@ -75,7 +107,12 @@ protected virtual async Task DoPush(Page currentPage)
/// A task representing the asynchronous operation.
public virtual async Task DoPop(Page currentPage)
{
- await currentPage.Navigation.PopModalAsync(false);
+ _closedBeforeOrDuringPush = true;
+ await DispatchModalAsync(currentPage, async () =>
+ {
+ await currentPage.Navigation.PopModalAsync(false);
+ IDialogContainer.DialogStack.Remove(this);
+ });
}
///
diff --git a/src/Maui/Prism.Maui/Dialogs/DialogServiceBase.cs b/src/Maui/Prism.Maui/Dialogs/DialogServiceBase.cs
index dbe81e8a8d..ee9cba78d6 100644
--- a/src/Maui/Prism.Maui/Dialogs/DialogServiceBase.cs
+++ b/src/Maui/Prism.Maui/Dialogs/DialogServiceBase.cs
@@ -31,21 +31,19 @@ public void ShowDialog(string name, IDialogParameters parameters, DialogCallback
?? throw new ViewCreationException(name, ViewType.Dialog);
dialogModal = container.Resolve();
- IDialogContainer.DialogStack.Add(dialogModal);
var dialogAware = GetDialogController(view);
async Task DialogAware_RequestClose(IDialogResult outResult)
{
- bool didCloseDialog = true;
try
{
var result = await CloseDialogAsync(outResult ?? new DialogResult(), currentPage, dialogModal);
if (result.Exception is DialogException de && de.Message == DialogException.CanCloseIsFalse)
{
- didCloseDialog = false;
return;
}
+ // DialogStack is updated when the container removes the overlay (e.g. DialogContainerPage.DoPop).
await callback.Invoke(result);
GC.Collect();
}
@@ -53,7 +51,6 @@ async Task DialogAware_RequestClose(IDialogResult outResult)
{
if (dex.Message == DialogException.CanCloseIsFalse)
{
- didCloseDialog = false;
return;
}
@@ -73,13 +70,6 @@ async Task DialogAware_RequestClose(IDialogResult outResult)
{
await InvokeError(callback, ex, parameters);
}
- finally
- {
- if (didCloseDialog && dialogModal is not null)
- {
- IDialogContainer.DialogStack.Remove(dialogModal);
- }
- }
}
DialogUtilities.InitializeListener(dialogAware, DialogAware_RequestClose);
diff --git a/src/Maui/Prism.Maui/Dialogs/IDialogContainer.cs b/src/Maui/Prism.Maui/Dialogs/IDialogContainer.cs
index 7a59b88f63..a3cc6ef007 100644
--- a/src/Maui/Prism.Maui/Dialogs/IDialogContainer.cs
+++ b/src/Maui/Prism.Maui/Dialogs/IDialogContainer.cs
@@ -13,6 +13,9 @@ public interface IDialogContainer
///
///
/// This property provides access to the list of dialogs currently displayed, typically in the order they were presented.
+ /// Built-in adds and removes itself when the modal is pushed and popped; custom
+ /// implementations (for example Mopups or Community Toolkit popups) should keep this list
+ /// aligned with when their overlay is actually shown or dismissed.
///
static IList DialogStack { get; } = [];
diff --git a/src/Maui/Prism.Maui/Navigation/Builder/NavigationBuilderExtensions.cs b/src/Maui/Prism.Maui/Navigation/Builder/NavigationBuilderExtensions.cs
index 247ed9faf1..dfc12d8484 100644
--- a/src/Maui/Prism.Maui/Navigation/Builder/NavigationBuilderExtensions.cs
+++ b/src/Maui/Prism.Maui/Navigation/Builder/NavigationBuilderExtensions.cs
@@ -1,3 +1,4 @@
+using System.Diagnostics.CodeAnalysis;
using Prism.Common;
using Prism.Navigation.Builder;
@@ -142,6 +143,7 @@ public static Task GoBackToAsync(this INavigation
/// Navigates to the URI generated by the .
///
/// The .
+ [ExcludeFromCodeCoverage(Justification = "Fire-and-forget UI entry point; use INavigationBuilder.NavigateAsync for testable navigation.")]
public static async void Navigate(this INavigationBuilder builder)
{
await builder.NavigateAsync();
@@ -153,6 +155,7 @@ public static async void Navigate(this INavigationBuilder builder)
///
/// The .
/// Delegate to handle when we encounter a Navigation Exception
+ [ExcludeFromCodeCoverage(Justification = "Fire-and-forget UI entry point; use INavigationBuilder.NavigateAsync for testable navigation.")]
public static async void Navigate(this INavigationBuilder builder, Action onError)
{
await builder.NavigateAsync(onError);
@@ -163,6 +166,7 @@ public static async void Navigate(this INavigationBuilder builder, Action
/// The .
/// Delegate to handle when the navigation is successful
+ [ExcludeFromCodeCoverage(Justification = "Fire-and-forget UI entry point; use INavigationBuilder.NavigateAsync for testable navigation.")]
public static async void Navigate(this INavigationBuilder builder, Action onSuccess)
{
await builder.NavigateAsync(onSuccess, _ => { });
@@ -174,6 +178,7 @@ public static async void Navigate(this INavigationBuilder builder, Action onSucc
/// The .
/// Delegate to handle when the navigation is successful
/// Delegate to handle when we encounter a Navigation Exception
+ [ExcludeFromCodeCoverage(Justification = "Fire-and-forget UI entry point; use INavigationBuilder.NavigateAsync for testable navigation.")]
public static async void Navigate(this INavigationBuilder builder, Action onSuccess, Action onError)
{
await builder.NavigateAsync(onSuccess, onError);
diff --git a/src/Maui/Prism.Maui/Navigation/PageNavigationService.cs b/src/Maui/Prism.Maui/Navigation/PageNavigationService.cs
index 234114ca3d..5b5da8ee92 100644
--- a/src/Maui/Prism.Maui/Navigation/PageNavigationService.cs
+++ b/src/Maui/Prism.Maui/Navigation/PageNavigationService.cs
@@ -375,9 +375,23 @@ static TabbedPage GetTabbedPage(Element page) =>
var parts = tabName.Split('|');
Page selectedChild = null;
if (parts.Length == 1)
- selectedChild = tabbedPage.Children.FirstOrDefault(x => ViewModelLocator.GetNavigationName(x) == tabName || (x is NavigationPage navPage && ViewModelLocator.GetNavigationName(navPage.RootPage) == tabName));
+ {
+ var tabRegistration = Registry.Registrations.FirstOrDefault(x => x.Name == tabName);
+ selectedChild = tabbedPage.Children.FirstOrDefault(x =>
+ ViewModelLocator.GetNavigationName(x) == tabName
+ || (x is NavigationPage navPage && ViewModelLocator.GetNavigationName(navPage.RootPage) == tabName)
+ || (tabRegistration is not null && x is NavigationPage np && IsPage(np.RootPage, tabRegistration, tabName))
+ || (tabRegistration is not null && IsPage(x, tabRegistration, tabName)));
+ }
else if (parts.Length == 2)
- selectedChild = tabbedPage.Children.FirstOrDefault(x => x is NavigationPage navPage && ViewModelLocator.GetNavigationName(navPage) == parts[0] && ViewModelLocator.GetNavigationName(navPage.RootPage) == parts[1]);
+ {
+ var rootRegistration = Registry.Registrations.FirstOrDefault(x => x.Name == parts[0]);
+ var leafRegistration = Registry.Registrations.FirstOrDefault(x => x.Name == parts[1]);
+ selectedChild = tabbedPage.Children.FirstOrDefault(x =>
+ x is NavigationPage navPage
+ && (ViewModelLocator.GetNavigationName(navPage) == parts[0] || (rootRegistration is not null && IsPage(navPage, rootRegistration, parts[0])))
+ && (ViewModelLocator.GetNavigationName(navPage.RootPage) == parts[1] || (leafRegistration is not null && IsPage(navPage.RootPage, leafRegistration, parts[1]))));
+ }
else
throw new NavigationException($"Invalid Tab Name: {tabName}");
@@ -1070,7 +1084,8 @@ private static bool IsPage(Page referencePage, ViewRegistration registration, st
{
// We're allowing an empty string here for cases where someone has a manually constructed TabbedPage
var navigationName = ViewModelLocator.GetNavigationName(referencePage);
- if (registration.View == referenceType && (string.IsNullOrEmpty(navigationName) || navigationName == name))
+ // registration.Name matches the navigation key (e.g. "Tab2") even when NavigationName still defaults to CLR type name ("Tab2Mock")
+ if (registration.View == referenceType && (string.IsNullOrEmpty(navigationName) || navigationName == name || registration.Name == name))
return true;
// This is an override for cases where someone may have a NavigationPage
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/DialogNavigationRegressionFixture.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/DialogNavigationRegressionFixture.cs
new file mode 100644
index 0000000000..45ae96112d
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/DialogNavigationRegressionFixture.cs
@@ -0,0 +1,51 @@
+using Prism.Dialogs;
+using Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+using Prism.DryIoc.Maui.Tests.Mocks.Views;
+using Prism.Ioc;
+using Prism.Navigation.Xaml;
+
+namespace Prism.DryIoc.Maui.Tests.Fixtures.Navigation;
+
+/// Regression tests for dialog + navigation interactions (GitHub #3395).
+public class DialogNavigationRegressionFixture : TestBase
+{
+ public DialogNavigationRegressionFixture(ITestOutputHelper testOutputHelper)
+ : base(testOutputHelper)
+ {
+ }
+
+ [Fact]
+ public async Task Issue3395_GoBackAsync_After_ShowDialogAsync_Completes_Pops_Navigation_Page()
+ {
+ var mauiApp = CreateBuilder(prism => prism
+ .RegisterTypes(c =>
+ {
+ c.RegisterDialog("TestDialog");
+ })
+ .CreateWindow("NavigationPage/MockViewA/MockViewB"))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var navPage = Assert.IsAssignableFrom(window.Page);
+ Assert.IsType(navPage.CurrentPage);
+ Assert.Equal(2, navPage.Navigation.NavigationStack.Count);
+
+ var container = navPage.CurrentPage.GetContainerProvider();
+ var dialogService = container.Resolve();
+ var navigationService = Prism.Navigation.Xaml.Navigation.GetNavigationService(navPage.CurrentPage);
+ var hostPage = navPage.CurrentPage;
+
+ Assert.Empty(hostPage.Navigation.ModalStack);
+ var dialogResult = await dialogService.ShowDialogAsync("TestDialog");
+ Assert.NotNull(dialogResult);
+ Assert.Null(dialogResult.Exception);
+ Assert.Equal(ButtonResult.OK, dialogResult.Result);
+ Assert.Empty(hostPage.Navigation.ModalStack);
+ Assert.Empty(IDialogContainer.DialogStack);
+
+ var goBackResult = await navigationService.GoBackAsync();
+ Assert.True(goBackResult.Success);
+ Assert.Null(goBackResult.Exception);
+ Assert.IsType(navPage.CurrentPage);
+ Assert.Single(navPage.Navigation.NavigationStack);
+ }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/PageNavigationServiceCoverageTests.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/PageNavigationServiceCoverageTests.cs
new file mode 100644
index 0000000000..32f0fa0176
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/PageNavigationServiceCoverageTests.cs
@@ -0,0 +1,172 @@
+using Prism.Common;
+using Prism.DryIoc.Maui.Tests.Mocks.Navigation;
+using Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+using Prism.DryIoc.Maui.Tests.Mocks.Views;
+using Prism.Navigation;
+using Prism.Navigation.Xaml;
+using TabbedPage = Microsoft.Maui.Controls.TabbedPage;
+
+namespace Prism.DryIoc.Maui.Tests.Fixtures.Navigation;
+
+///
+/// Targets branches in not exercised by other navigation fixtures.
+///
+public class PageNavigationServiceCoverageTests : TestBase
+{
+ public PageNavigationServiceCoverageTests(ITestOutputHelper testOutputHelper)
+ : base(testOutputHelper)
+ {
+ }
+
+ [Fact]
+ public async Task SelectTabAsync_InvalidPipeCount_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism
+ .CreateWindow(nav => nav.CreateBuilder()
+ .AddTabbedSegment(s => s.CreateTab("MockViewA").CreateTab("MockViewB"))
+ .NavigateAsync()))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var tabbed = (TabbedPage)window.Page;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(tabbed.CurrentPage);
+
+ var result = await nav.SelectTabAsync("A|B|C", new NavigationParameters());
+
+ Assert.False(result.Success);
+ Assert.NotNull(result.Exception);
+ }
+
+ [Fact]
+ public async Task SelectTabAsync_AbsoluteUri_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism
+ .CreateWindow(nav => nav.CreateBuilder()
+ .AddTabbedSegment(s => s.CreateTab("MockViewA").CreateTab("MockViewB"))
+ .NavigateAsync()))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var tabbed = (TabbedPage)window.Page;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(tabbed.CurrentPage);
+
+ var result = await nav.SelectTabAsync("MockViewB", new Uri("http://localhost/View", UriKind.Absolute));
+
+ Assert.False(result.Success);
+ Assert.IsType(result.Exception);
+ }
+
+ [Fact]
+ public async Task SelectTabAsync_UnknownTab_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism
+ .CreateWindow(nav => nav.CreateBuilder()
+ .AddTabbedSegment(s => s.CreateTab("MockViewA").CreateTab("MockViewB"))
+ .NavigateAsync()))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var tabbed = (TabbedPage)window.Page;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(tabbed.CurrentPage);
+
+ var result = await nav.SelectTabAsync("NoSuchTab");
+
+ Assert.False(result.Success);
+ Assert.NotNull(result.Exception);
+ }
+
+ [Fact]
+ public async Task SelectTabAsync_WhenCanNavigateFalse_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism
+ .CreateWindow(nav => nav.CreateBuilder()
+ .AddTabbedSegment(s => s.CreateTab("MockViewA").CreateTab("MockViewB"))
+ .NavigateAsync()))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var tabbed = (TabbedPage)window.Page;
+ var mockA = (MockViewA)tabbed.CurrentPage;
+ ((MockViewAViewModel)mockA.BindingContext).StopNavigation = true;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(mockA);
+
+ var result = await nav.SelectTabAsync("MockViewB");
+
+ Assert.False(result.Success);
+ Assert.IsType(result.Exception);
+ }
+
+ [Fact]
+ public async Task GoBackToAsync_WhenTargetNotInStack_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism.CreateWindow("NavigationPage/MockViewA/MockViewB"))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var navPage = (NavigationPage)window.Page;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(navPage.CurrentPage);
+
+ var result = await nav.GoBackToAsync("MissingView");
+
+ Assert.False(result.Success);
+ Assert.NotNull(result.Exception);
+ }
+
+ [Fact]
+ public async Task NavigateAsync_UnregisteredSegment_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism.CreateWindow("MockViewA"))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(window.CurrentPage);
+
+ var result = await nav.NavigateAsync("NotARegisteredPageName");
+
+ Assert.False(result.Success);
+ Assert.NotNull(result.Exception);
+ }
+
+ [Fact]
+ public async Task GoBackToRootAsync_WhenCanNavigateFalse_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism.CreateWindow("NavigationPage/MockViewA/MockViewB"))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var navPage = (NavigationPage)window.Page;
+ ((MockViewBViewModel)navPage.CurrentPage.BindingContext).StopNavigation = true;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(navPage.CurrentPage);
+
+ var result = await nav.GoBackToRootAsync();
+
+ Assert.False(result.Success);
+ Assert.IsType(result.Exception);
+ }
+
+ [Fact]
+ public async Task GoBackAsync_WhenCanNavigateFalse_ReturnsFailure()
+ {
+ var mauiApp = CreateBuilder(prism => prism.CreateWindow("NavigationPage/MockViewA/MockViewB"))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var navPage = (NavigationPage)window.Page;
+ ((MockViewBViewModel)navPage.CurrentPage.BindingContext).StopNavigation = true;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(navPage.CurrentPage);
+
+ var result = await nav.GoBackAsync();
+
+ Assert.False(result.Success);
+ Assert.IsType(result.Exception);
+ }
+
+ [Fact]
+ public async Task GoBackAsync_WhenDoPopReturnsNull_ReturnsFailureWithInnerException()
+ {
+ var mauiApp = CreateBuilder(prism => prism.CreateWindow("NavigationPage/MockViewA/MockViewB"))
+ .Build();
+ var window = GetWindow(mauiApp);
+ var navPage = (NavigationPage)window.Page;
+ var nav = Prism.Navigation.Xaml.Navigation.GetNavigationService(navPage.CurrentPage);
+
+ TestPageNavigationService.ForceNextDoPopToReturnNull = true;
+ var result = await nav.GoBackAsync();
+
+ Assert.False(result.Success);
+ Assert.NotNull(result.Exception);
+ }
+
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Regions/RegionFixture.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Regions/RegionFixture.cs
index 60e720a9e5..2a61ad91ee 100644
--- a/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Regions/RegionFixture.cs
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Regions/RegionFixture.cs
@@ -1,5 +1,9 @@
-using Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Maui.Graphics;
+using Microsoft.Maui.Layouts;
+using Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
using Prism.DryIoc.Maui.Tests.Mocks.Views;
+using Prism.Navigation.Regions;
using Prism.Navigation.Xaml;
namespace Prism.DryIoc.Maui.Tests.Fixtures.Regions;
@@ -286,4 +290,45 @@ public void Issue3328_WhenNavigatingToUnregisteredView_ShouldFailWithKeyNotFound
Assert.IsType(page.ContentRegion.Content);
Assert.IsType(page.ContentRegion.Content.BindingContext);
}
+
+ [Fact]
+ public void Issue3332_NestedContentRegion_InnerRegionReceivesGuest_AfterLayout()
+ {
+ var mauiApp = CreateBuilder(prism => prism
+ .RegisterTypes(container =>
+ {
+ container.RegisterForNavigation();
+ container.RegisterForRegionNavigation();
+ container.RegisterForRegionNavigation();
+ })
+ .CreateWindow("MockNestedRegionPage"))
+ .Build();
+
+ var window = GetWindow(mauiApp);
+ var page = Assert.IsType(window.Page);
+ var regionManager = mauiApp.Services.GetRequiredService();
+
+ // Same flow as e2e / community samples: RequestNavigate outer; outer guest RequestNavigate's inner in OnNavigatedTo.
+ NavigationResult? outerResult = null;
+ regionManager.RequestNavigate("OuterRegion", nameof(MockOuterGuestView), r => outerResult = r);
+ Assert.NotNull(outerResult);
+ Assert.True(outerResult!.Success, outerResult.Exception?.ToString());
+
+ var outerGuest = Assert.IsType(page.OuterRegion.Content);
+
+ const double w = 400;
+ const double h = 800;
+ page.OuterRegion.Measure(w, h, MeasureFlags.IncludeMargins);
+ page.OuterRegion.Arrange(new Rect(0, 0, w, h));
+ outerGuest.InnerRegionHost.Measure(w, h, MeasureFlags.IncludeMargins);
+ outerGuest.InnerRegionHost.Arrange(new Rect(0, 0, w, h));
+
+ Assert.Contains(regionManager.Regions, r => r.Name == "InnerRegion");
+
+ outerGuest.InnerRegionHost.Measure(w, h, MeasureFlags.IncludeMargins);
+ outerGuest.InnerRegionHost.Arrange(new Rect(0, 0, w, h));
+
+ Assert.NotNull(outerGuest.InnerRegionHost.Content);
+ Assert.IsType(outerGuest.InnerRegionHost.Content);
+ }
}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/NavigationPop.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/NavigationPop.cs
index 70fc574589..29ebd64dbc 100644
--- a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/NavigationPop.cs
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/NavigationPop.cs
@@ -1,3 +1,4 @@
-namespace Prism.DryIoc.Maui.Tests.Mocks.Navigation;
+#nullable enable
+namespace Prism.DryIoc.Maui.Tests.Mocks.Navigation;
-public record NavigationPop(Page Page, bool UseModalNavigation, bool Animated);
+public record NavigationPop(Page? Page, bool UseModalNavigation, bool Animated);
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/TestPageNavigationService.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/TestPageNavigationService.cs
index 13bc2e48c5..a8ce9258dc 100644
--- a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/TestPageNavigationService.cs
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Navigation/TestPageNavigationService.cs
@@ -5,6 +5,11 @@ namespace Prism.DryIoc.Maui.Tests.Mocks.Navigation;
internal sealed class TestPageNavigationService : PageNavigationService
{
+ ///
+ /// When true, the next returns null without calling the base implementation (exercises go-back failure paths).
+ ///
+ internal static bool ForceNextDoPopToReturnNull;
+
public TestPageNavigationService(
IContainerProvider container,
IWindowManager windowManager,
@@ -20,6 +25,13 @@ public TestPageNavigationService(
protected override async Task DoPop(INavigation navigation, bool useModalNavigation, bool animated)
{
+ if (ForceNextDoPopToReturnNull)
+ {
+ ForceNextDoPopToReturnNull = false;
+ Recorder.Pop(new NavigationPop(null, useModalNavigation, animated));
+ return null;
+ }
+
var page = await base.DoPop(navigation, useModalNavigation, animated);
Recorder.Pop(new NavigationPop(page, useModalNavigation, animated));
return page;
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockInnerGuestViewModel.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockInnerGuestViewModel.cs
new file mode 100644
index 0000000000..457593bec5
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockInnerGuestViewModel.cs
@@ -0,0 +1,19 @@
+using Prism.DryIoc.Maui.Tests.Mocks.Views;
+using Prism.Mvvm;
+using Prism.Navigation.Regions;
+
+namespace Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+
+public class MockInnerGuestViewModel : BindableBase, IRegionAware
+{
+ public bool IsNavigationTarget(NavigationContext navigationContext) =>
+ navigationContext.NavigatedName() == nameof(MockInnerGuestView);
+
+ public void OnNavigatedFrom(NavigationContext navigationContext)
+ {
+ }
+
+ public void OnNavigatedTo(NavigationContext navigationContext)
+ {
+ }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockNestedRegionPageViewModel.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockNestedRegionPageViewModel.cs
new file mode 100644
index 0000000000..1b38d39d2f
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockNestedRegionPageViewModel.cs
@@ -0,0 +1,5 @@
+namespace Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+
+public class MockNestedRegionPageViewModel
+{
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockOuterGuestViewModel.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockOuterGuestViewModel.cs
new file mode 100644
index 0000000000..30961fb50f
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/MockOuterGuestViewModel.cs
@@ -0,0 +1,24 @@
+using Prism.DryIoc.Maui.Tests.Mocks.Views;
+using Prism.Mvvm;
+using Prism.Navigation.Regions;
+
+namespace Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+
+/// Mirrors nested-region samples: inner region is navigated when this guest is navigated to.
+public class MockOuterGuestViewModel : BindableBase, IRegionAware
+{
+ private readonly IRegionManager _regionManager;
+
+ public MockOuterGuestViewModel(IRegionManager regionManager) =>
+ _regionManager = regionManager;
+
+ public bool IsNavigationTarget(NavigationContext navigationContext) =>
+ navigationContext.NavigatedName() == nameof(MockOuterGuestView);
+
+ public void OnNavigatedFrom(NavigationContext navigationContext)
+ {
+ }
+
+ public void OnNavigatedTo(NavigationContext navigationContext) =>
+ _regionManager.RequestNavigate("InnerRegion", nameof(MockInnerGuestView));
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/TestDialogViewModel.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/TestDialogViewModel.cs
new file mode 100644
index 0000000000..e375c54dcc
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/ViewModels/TestDialogViewModel.cs
@@ -0,0 +1,31 @@
+using Prism.Dialogs;
+using Prism.Mvvm;
+
+namespace Prism.DryIoc.Maui.Tests.Mocks.ViewModels;
+
+/// Minimal for dialog regression tests; view closes itself on .
+public class TestDialogViewModel : BindableBase, IDialogAware
+{
+ private DialogCloseListener _requestClose;
+
+ public TestDialogViewModel()
+ {
+ _requestClose = new DialogCloseListener();
+ }
+
+ public DialogCloseListener RequestClose
+ {
+ get => _requestClose;
+ set => SetProperty(ref _requestClose, value);
+ }
+
+ public bool CanCloseDialog() => true;
+
+ public void OnDialogClosed()
+ {
+ }
+
+ public void OnDialogOpened(IDialogParameters parameters)
+ {
+ }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockInnerGuestView.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockInnerGuestView.cs
new file mode 100644
index 0000000000..cdf36dd354
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockInnerGuestView.cs
@@ -0,0 +1,10 @@
+namespace Prism.DryIoc.Maui.Tests.Mocks.Views;
+
+/// Guest view injected into the nested inner region.
+public class MockInnerGuestView : ContentView
+{
+ public MockInnerGuestView()
+ {
+ Content = new Label { Text = nameof(MockInnerGuestView) };
+ }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockNestedRegionPage.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockNestedRegionPage.cs
new file mode 100644
index 0000000000..4d520b19b0
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockNestedRegionPage.cs
@@ -0,0 +1,14 @@
+namespace Prism.DryIoc.Maui.Tests.Mocks.Views;
+
+/// Shell page with a single outer region (GitHub #3332 repro shape).
+public class MockNestedRegionPage : ContentPage
+{
+ public MockNestedRegionPage()
+ {
+ OuterRegion = new ContentView();
+ OuterRegion.SetValue(Prism.Navigation.Regions.Xaml.RegionManager.RegionNameProperty, "OuterRegion");
+ Content = OuterRegion;
+ }
+
+ public ContentView OuterRegion { get; }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockOuterGuestView.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockOuterGuestView.cs
new file mode 100644
index 0000000000..34f38ae3b5
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/MockOuterGuestView.cs
@@ -0,0 +1,14 @@
+namespace Prism.DryIoc.Maui.Tests.Mocks.Views;
+
+/// Outer region guest that hosts an inner region.
+public class MockOuterGuestView : ContentView
+{
+ public MockOuterGuestView()
+ {
+ InnerRegionHost = new ContentView();
+ InnerRegionHost.SetValue(Prism.Navigation.Regions.Xaml.RegionManager.RegionNameProperty, "InnerRegion");
+ Content = InnerRegionHost;
+ }
+
+ public ContentView InnerRegionHost { get; }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/TestDialogView.cs b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/TestDialogView.cs
new file mode 100644
index 0000000000..835004914a
--- /dev/null
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Mocks/Views/TestDialogView.cs
@@ -0,0 +1,20 @@
+using Prism.Dialogs;
+
+namespace Prism.DryIoc.Maui.Tests.Mocks.Views;
+
+/// Border-based dialog; auto-closes on after is wired.
+public class TestDialogView : Border
+{
+ public TestDialogView()
+ {
+ Content = new Label { Text = "TestDialog" };
+ Loaded += OnLoaded;
+ }
+
+ private void OnLoaded(object? sender, EventArgs e)
+ {
+ Loaded -= OnLoaded;
+ if (BindingContext is IDialogAware aware)
+ aware.RequestClose.Invoke(ButtonResult.OK);
+ }
+}
diff --git a/tests/Maui/Prism.DryIoc.Maui.Tests/Prism.DryIoc.Maui.Tests.csproj b/tests/Maui/Prism.DryIoc.Maui.Tests/Prism.DryIoc.Maui.Tests.csproj
index 0a0a293707..a5752dead1 100644
--- a/tests/Maui/Prism.DryIoc.Maui.Tests/Prism.DryIoc.Maui.Tests.csproj
+++ b/tests/Maui/Prism.DryIoc.Maui.Tests/Prism.DryIoc.Maui.Tests.csproj
@@ -4,10 +4,6 @@
net10.0
-
-
-
-
diff --git a/tests/Maui/Prism.Maui.Tests/Fixtures/Behaviors/EventToCommandBehaviorFixture.cs b/tests/Maui/Prism.Maui.Tests/Fixtures/Behaviors/EventToCommandBehaviorFixture.cs
index ed8c52b26a..95adf5863a 100644
--- a/tests/Maui/Prism.Maui.Tests/Fixtures/Behaviors/EventToCommandBehaviorFixture.cs
+++ b/tests/Maui/Prism.Maui.Tests/Fixtures/Behaviors/EventToCommandBehaviorFixture.cs
@@ -1,5 +1,8 @@
using System;
+using System.Collections.Generic;
using System.Globalization;
+using System.Linq;
+using System.Reflection;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Controls.Hosting;
using Microsoft.Maui.Dispatching;
@@ -12,13 +15,32 @@ namespace Prism.Maui.Tests.Fixtures.Behaviors;
public class EventToCommandBehaviorFixture
{
- private class ItemTappedEventArgsConverter : IValueConverter
+ /// Mirrors shape for tests (MAUI ctor is not public).
+ private sealed class FakeSelectionChangedEventArgs : EventArgs
+ {
+ public FakeSelectionChangedEventArgs(IReadOnlyList