Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,13 @@

<!-- Versions: Directory.Packages.props (Central Package Management). PrivateAssets=all is implicit. -->
<ItemGroup>
<GlobalPackageReference Include="Microsoft.NETFramework.ReferenceAssemblies"
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies"
Condition=" $(UseMaui) != 'true' " />
<GlobalPackageReference Include="Nerdbank.GitVersioning"
<PackageReference Include="Nerdbank.GitVersioning"
Condition=" $(DISABLE_GITVERSIONING) != 'true' AND !$(MSBuildProjectDirectory.Contains('e2e')) " />
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub"
<PackageReference Include="Microsoft.SourceLink.GitHub"
Condition=" $(IsPackable) " />
<GlobalPackageReference Include="Microsoft.Sbom.Targets"
<PackageReference Include="Microsoft.Sbom.Targets"
Condition=" $(IsPackable) " />
</ItemGroup>

Expand Down
462 changes: 0 additions & 462 deletions PrismLibrary.sln

This file was deleted.

68 changes: 68 additions & 0 deletions PrismLibrary.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<Solution>
<Configurations>
<Platform Name="Any CPU" />
<Platform Name="x64" />
<Platform Name="x86" />
</Configurations>
<Folder Name="/Solution Items/">
<File Path=".editorconfig" />
<File Path=".gitignore" />
<File Path="CodeCoverage.runsettings" />
<File Path="Directory.Build.props" />
<File Path="Directory.build.targets" />
<File Path="Directory.Packages.props" />
<File Path="global.json" />
<File Path="xunit.runner.json" />
</Folder>
<Folder Name="/src/">
<File Path="src/Directory.Build.props" />
<File Path="src/Directory.Build.targets" />
<Project Path="src/Prism.Core/Prism.Core.csproj" />
<Project Path="src/Prism.Events/Prism.Events.csproj" />
</Folder>
<Folder Name="/src/Avalonia/">
<Project Path="src/Avalonia/Prism.Avalonia/Prism.Avalonia.csproj" />
<Project Path="src/Avalonia/Prism.DryIoc.Avalonia/Prism.DryIoc.Avalonia.csproj" />
</Folder>
<Folder Name="/src/Maui/">
<Project Path="src/Maui/Prism.DryIoc.Maui/Prism.DryIoc.Maui.csproj" />
<Project Path="src/Maui/Prism.Maui.Rx/Prism.Maui.Rx.csproj" />
<Project Path="src/Maui/Prism.Maui/Prism.Maui.csproj" />
</Folder>
<Folder Name="/src/Uno/">
<Project Path="src/Uno/Prism.DryIoc.Uno/Prism.DryIoc.Uno.WinUI.csproj" />
<Project Path="src/Uno/Prism.Uno.Markup/Prism.Uno.WinUI.Markup.csproj" />
<Project Path="src/Uno/Prism.Uno/Prism.Uno.WinUI.csproj" />
</Folder>
<Folder Name="/src/Uno/Prism.DryIoc.Uno/" />
<Folder Name="/src/Uno/Prism.Uno/" />
<Folder Name="/src/Wpf/">
<Project Path="src/Wpf/Prism.DryIoc.Wpf/Prism.DryIoc.Wpf.csproj" />
<Project Path="src/Wpf/Prism.Unity.Wpf/Prism.Unity.Wpf.csproj" />
<Project Path="src/Wpf/Prism.Wpf/Prism.Wpf.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/Prism.Core.Tests/Prism.Core.Tests.csproj" />
</Folder>
<Folder Name="/tests/Avalonia/">
<Project Path="tests/Avalonia/Prism.Avalonia.Tests/Prism.Avalonia.Tests.csproj" />
<Project Path="tests/Avalonia/Prism.Container.Avalonia.Shared/Prism.Container.Avalonia.Shared.shproj" />
<Project Path="tests/Avalonia/Prism.DryIoc.Avalonia.Tests/Prism.DryIoc.Avalonia.Tests.csproj" />
<Project Path="tests/Avalonia/Prism.IocContainer.Avalonia.Tests.Support/Prism.IocContainer.Avalonia.Tests.Support.csproj" />
</Folder>
<Folder Name="/tests/Maui/">
<Project Path="tests/Maui/Prism.DryIoc.Maui.Tests/Prism.DryIoc.Maui.Tests.csproj" />
<Project Path="tests/Maui/Prism.Maui.Tests/Prism.Maui.Tests.csproj" />
</Folder>
<Folder Name="/tests/Uno/">
<Project Path="tests/Uno/Prism.DryIoc.Uno.WinUI.Tests/Prism.DryIoc.Uno.WinUI.Tests.csproj" />
<Project Path="tests/Uno/Prism.Uno.WinUI.Tests/Prism.Uno.WinUI.Tests.csproj" />
</Folder>
<Folder Name="/tests/Wpf/">
<Project Path="tests/Wpf/Prism.Container.Wpf.Shared/Prism.Container.Wpf.Shared.shproj" />
<Project Path="tests/Wpf/Prism.DryIoc.Wpf.Tests/Prism.DryIoc.Wpf.Tests.csproj" />
<Project Path="tests/Wpf/Prism.IocContainer.Wpf.Tests.Support/Prism.IocContainer.Wpf.Tests.Support.csproj" />
<Project Path="tests/Wpf/Prism.Unity.Wpf.Tests/Prism.Unity.Wpf.Tests.csproj" />
<Project Path="tests/Wpf/Prism.Wpf.Tests/Prism.Wpf.Tests.csproj" />
</Folder>
</Solution>
2 changes: 1 addition & 1 deletion PrismLibrary_Avalonia.slnf
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion PrismLibrary_Core.slnf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"solution": {
"path": "PrismLibrary.sln",
"path": "PrismLibrary.slnx",
"projects": [
"src\\Prism.Core\\Prism.Core.csproj",
"src\\Prism.Events\\Prism.Events.csproj",
Expand Down
2 changes: 1 addition & 1 deletion PrismLibrary_Maui.slnf
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion PrismLibrary_Uno.slnf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"solution": {
"path": "PrismLibrary.sln",
"path": "PrismLibrary.slnx",
"projects": [
"src\\Prism.Core\\Prism.Core.csproj",
"src\\Prism.Events\\Prism.Events.csproj",
Expand Down
2 changes: 1 addition & 1 deletion PrismLibrary_Wpf.slnf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"solution": {
"path": "PrismLibrary.sln",
"path": "PrismLibrary.slnx",
"projects": [
"src\\Prism.Core\\Prism.Core.csproj",
"src\\Prism.Events\\Prism.Events.csproj",
Expand Down
57 changes: 0 additions & 57 deletions e2e/Avalonia/PrismAvaloniaDemo.sln

This file was deleted.

9 changes: 9 additions & 0 deletions e2e/Avalonia/PrismAvaloniaDemo.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Solution>
<Folder Name="/Prism Library/">
<Project Path="../../src/Avalonia/Prism.Avalonia/Prism.Avalonia.csproj" />
<Project Path="../../src/Avalonia/Prism.DryIoc.Avalonia/Prism.DryIoc.Avalonia.csproj" />
<Project Path="../../src/Prism.Core/Prism.Core.csproj" />
<Project Path="../../src/Prism.Events/Prism.Events.csproj" />
</Folder>
<Project Path="PrismAvaloniaDemo/PrismAvaloniaDemo.csproj" />
</Solution>
27 changes: 25 additions & 2 deletions e2e/Maui/MauiModule/ViewModels/ViewDViewModel.cs
Original file line number Diff line number Diff line change
@@ -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);
}

/// <summary>GitHub #3395 — same continuation as <c>await ShowDialogAsync</c> then <c>await GoBackAsync</c>.</summary>
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}.");
}
}
9 changes: 7 additions & 2 deletions e2e/Maui/MauiModule/Views/ViewD.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -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">
<Grid RowDefinitions="*,Auto,Auto,Auto,Auto"
<Grid RowDefinitions="*,Auto,Auto,Auto,Auto,Auto"
ColumnDefinitions="*,*">
<CollectionView ItemsSource="{Binding Messages}"
Grid.ColumnSpan="2">
Expand Down Expand Up @@ -63,5 +63,10 @@
Margin="10"
Grid.Row="4"
Grid.Column="0"/>
<Button Text="#3395: Async dialog then Go Back"
Command="{Binding ShowDialogAsyncThenGoBackCommand}"
Margin="10"
Grid.Row="5"
Grid.ColumnSpan="2" />
</Grid>
</ContentPage>
7 changes: 5 additions & 2 deletions e2e/Maui/MauiRegionsModule/MauiTestRegionsModule.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using MauiRegionsModule.ViewModels;
using MauiRegionsModule.ViewModels;
using MauiRegionsModule.Views;

namespace MauiRegionsModule;
Expand All @@ -16,11 +16,14 @@ public void RegisterTypes(IContainerRegistry containerRegistry)
containerRegistry
.RegisterForNavigation<ContentRegionPage>()
.RegisterForNavigation<RegionHome, RegionHomeViewModel>()
.RegisterForNavigation<NestedRegionPage, NestedRegionPageViewModel>()
.RegisterForNavigation<DefaultViewNamedPage>()
.RegisterForNavigation<DefaultViewInstancePage>()
.RegisterForNavigation<DefaultViewTypePage>()
.RegisterForRegionNavigation<RegionViewA, RegionViewAViewModel>()
.RegisterForRegionNavigation<RegionViewB, RegionViewBViewModel>()
.RegisterForRegionNavigation<RegionViewC, RegionViewCViewModel>();
.RegisterForRegionNavigation<RegionViewC, RegionViewCViewModel>()
.RegisterForRegionNavigation<OuterRegionGuestView, OuterRegionGuestViewModel>()
.RegisterForRegionNavigation<InnerRegionGuestView, InnerRegionGuestViewModel>();
}
}
9 changes: 9 additions & 0 deletions e2e/Maui/MauiRegionsModule/NestedRegionNames.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace MauiRegionsModule;

/// <summary>Region names for the nested-regions playground (GitHub #3332).</summary>
public static class NestedRegionNames
{
public const string OuterRegion = "OuterRegion";

public const string InnerRegion = "InnerRegion";
}
Original file line number Diff line number Diff line change
@@ -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)
{
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using MauiRegionsModule;
using MauiRegionsModule.Views;
using Prism.Commands;
using Prism.Mvvm;
using Prism.Navigation.Regions;

namespace MauiRegionsModule.ViewModels;

/// <summary>View model for the nested regions playground page (GitHub #3332).</summary>
public class NestedRegionPageViewModel : BindableBase
{
private readonly IRegionManager _regionManager;

public NestedRegionPageViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
NavigateNestedDemoCommand = new DelegateCommand(OnNavigateNestedDemo);
}

/// <summary>Navigates the outer region; the outer guest navigates the inner region when it loads (same pattern as community nested-region samples).</summary>
public DelegateCommand NavigateNestedDemoCommand { get; }

private void OnNavigateNestedDemo() =>
_regionManager.RequestNavigate(NestedRegionNames.OuterRegion, nameof(OuterRegionGuestView));
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using MauiRegionsModule;
using MauiRegionsModule.Views;
using Prism.Mvvm;
using Prism.Navigation.Regions;

namespace MauiRegionsModule.ViewModels;

/// <summary>
/// Outer region guest — navigates the inner region on arrival, matching the flow in the community sample
/// NestedRegionsNotInjectableOnAndroidIssue (R8MC).
/// </summary>
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));
}
16 changes: 16 additions & 0 deletions e2e/Maui/MauiRegionsModule/Views/InnerRegionGuestView.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiRegionsModule.Views.InnerRegionGuestView"
x:DataType="viewmodels:InnerRegionGuestViewModel"
xmlns:viewmodels="clr-namespace:MauiRegionsModule.ViewModels">
<Border Stroke="#FF6600"
Padding="12"
Margin="4">
<VerticalStackLayout Spacing="6">
<Label Text="Inner region guest"
FontAttributes="Bold" />
<Label Text="GitHub #3332 — nested ContentView region received navigation." />
</VerticalStackLayout>
</Border>
</ContentView>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace MauiRegionsModule.Views;

public partial class InnerRegionGuestView : ContentView
{
public InnerRegionGuestView()
{
InitializeComponent();
}
}
Loading
Loading