Skip to content

Commit 7bab73f

Browse files
authored
Merge pull request #55 from NeverMorewd/feat-viewaliasname
feature:add view alias
2 parents e0a82e1 + 9bfcdf8 commit 7bab73f

File tree

11 files changed

+37
-23
lines changed

11 files changed

+37
-23
lines changed

samples/Lemon.ModuleNavigation.Sample/ViewModels/MainViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ public MainViewModel(IEnumerable<IModule> modules,
4747
new NavigationParameters { { "requestNew", requestNew } });
4848
_navigationService.RequestViewNavigation("TabRegion",
4949
viewName,
50-
new NavigationParameters { { "requestNew", requestNew } });
50+
new NavigationParameters { { "requestNew", requestNew } },
51+
$"alias-{viewName}");
5152
_navigationService.RequestViewNavigation("ItemsRegion",
5253
viewName,
5354
new NavigationParameters { { "requestNew", requestNew } });

samples/Lemon.ModuleNavigation.Sample/Views/MainView.axaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
<TabControl.ItemTemplate>
7373
<DataTemplate>
7474
<StackPanel Orientation="Horizontal" Spacing="2">
75-
<TextBlock Text="{Binding}" />
75+
<TextBlock Text="{Binding Alias}" />
7676
<Button
7777
Content="X"
7878
FontSize="11"

samples/Lemon.ModuleNavigation.SampleViewModel/MainWindowViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using ReactiveUI;
44
using System.Diagnostics;
55
using System.Reactive;
6+
using System.Reflection;
67

78
namespace Lemon.ModuleNavigation.SampleViewModel;
89

@@ -32,7 +33,7 @@ public MainWindowViewModel(INavigationService navigationService,
3233

3334
}
3435
_navigationService.RequestViewNavigation("ContentRegion", viewName, new NavigationParameters { { "requestNew", requestNew } });
35-
_navigationService.RequestViewNavigation("TabRegion", viewName, new NavigationParameters { { "requestNew", requestNew } });
36+
_navigationService.RequestViewNavigation("TabRegion", viewName, new NavigationParameters { { "requestNew", requestNew } }, $"alias-{viewName}");
3637
_navigationService.RequestViewNavigation("ItemsRegion", viewName, new NavigationParameters { { "requestNew", requestNew } });
3738
});
3839

samples/Lemon.ModuleNavigation.WpfSample/MainWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<TabControl.ItemTemplate>
5656
<DataTemplate>
5757
<StackPanel Orientation="Horizontal">
58-
<TextBlock Text="{Binding}" />
58+
<TextBlock Text="{Binding Alias}" />
5959
<Button
6060
Width="20"
6161
Height="20"

src/Lemon.ModuleNavigation/Abstractions/IRegionManager.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ public interface IRegionManager : IObservable<NavigationContext>, IObservable<IR
66
{
77
void AddRegion(string regionName, IRegion region);
88
IRegion? GetRegion(string regionName);
9-
10-
void RequestViewNavigate(string regionName, string viewName, NavigationParameters? parameters = null);
9+
void RequestViewNavigate(string regionName, string viewName, NavigationParameters? parameters = null, string? alias = null);
1110
[Obsolete("requestNew was obsolete.Consider IsNavigationTarget() in INavigationAware instead.")]
1211
void RequestNavigate(string regionName, string viewName, bool requestNew, NavigationParameters? parameters = null);
1312
void RequestViewUnload(string regionName, string viewName);
1413
void RequestViewUnload(NavigationContext context);
15-
16-
1714
void RequestModuleNavigate(string regionName, string moduleName, NavigationParameters? parameters);
1815
void RequestModuleNavigate(string regionName, IModule module, NavigationParameters? parameters);
1916
void RequestModuleUnload(string moduleName, string viewName);

src/Lemon.ModuleNavigation/Abstractions/IViewNavigationHandler.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ namespace Lemon.ModuleNavigation.Abstractions;
55
public interface IViewNavigationHandler
66
{
77
void OnNavigateTo(string regionName,
8-
string viewName);
8+
string viewName,
9+
string? alias = null);
910
void OnNavigateTo(string regionName,
1011
string viewName,
11-
NavigationParameters parameters);
12+
NavigationParameters parameters,
13+
string? alias = null);
1214
void OnViewUnload(string regionName,
1315
string viewName);
1416
}

src/Lemon.ModuleNavigation/Abstractions/IViewNavigationService.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ void RequestViewNavigation(string regionName,
2020
bool requestNew);
2121

2222
void RequestViewNavigation(string regionName,
23-
string viewName);
23+
string viewName,
24+
string? alias = null);
2425

2526
/// <summary>
2627
/// RequestViewNavigation
@@ -40,7 +41,8 @@ void RequestViewNavigation(string regionName,
4041

4142
void RequestViewNavigation(string regionName,
4243
string viewName,
43-
NavigationParameters parameters);
44+
NavigationParameters parameters,
45+
string? alias = null);
4446

4547
/// <summary>
4648
/// RequestViewUnload

src/Lemon.ModuleNavigation/NavigationContext.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ internal NavigationContext(string viewName,
2121
internal NavigationContext(string viewName,
2222
string regionName,
2323
IServiceProvider serviceProvider,
24-
NavigationParameters? navigationParameters)
24+
NavigationParameters? navigationParameters,
25+
string? alias)
2526
{
2627
ViewName = viewName;
2728
Parameters = navigationParameters;
2829
RegionName = regionName;
2930
ServiceProvider = serviceProvider;
31+
Alias = alias;
3032
}
3133
public static ViewNameComparer ViewNameComparer => new();
3234
public static StrictComparer StrictComparer => new();
@@ -35,6 +37,11 @@ public string ViewName
3537
get;
3638
private set;
3739
}
40+
public string? Alias
41+
{
42+
get;
43+
private set;
44+
}
3845
public NavigationParameters? Parameters
3946
{
4047
get;

src/Lemon.ModuleNavigation/NavigationHandler.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,17 @@ public void OnNavigateTo(string moduleKey, NavigationParameters? parameters)
3333
_moduleManager.RequestNavigate(moduleKey, parameters);
3434
}
3535
public void OnNavigateTo(string regionName,
36-
string viewName)
36+
string viewName,
37+
string? alias = null)
3738
{
38-
RegionManager.RequestViewNavigate(regionName, viewName, null);
39+
RegionManager.RequestViewNavigate(regionName, viewName, null, alias);
3940
}
4041
public void OnNavigateTo(string regionName,
4142
string viewName,
42-
NavigationParameters navigationParameters)
43+
NavigationParameters navigationParameters,
44+
string? alias = null)
4345
{
44-
RegionManager.RequestViewNavigate(regionName, viewName, navigationParameters);
46+
RegionManager.RequestViewNavigate(regionName, viewName, navigationParameters, alias);
4547
}
4648

4749
public void OnViewUnload(string regionName, string viewName)

src/Lemon.ModuleNavigation/NavigationService.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,23 @@ public void RequestModuleNavigate(string moduleName, NavigationParameters? param
4040
_bufferModuleName.Push((moduleName, parameters));
4141
}
4242
public void RequestViewNavigation(string regionName,
43-
string viewName)
43+
string viewName,
44+
string? alias = null)
4445
{
4546
foreach (var handler in _viewHandlers)
4647
{
47-
handler.OnNavigateTo(regionName, viewName);
48+
handler.OnNavigateTo(regionName, viewName, alias);
4849
}
4950
_bufferViewName.Push((regionName, viewName, null));
5051
}
5152
public void RequestViewNavigation(string regionName,
5253
string viewName,
53-
NavigationParameters parameters)
54+
NavigationParameters parameters,
55+
string? alias = null)
5456
{
5557
foreach (var handler in _viewHandlers)
5658
{
57-
handler.OnNavigateTo(regionName, viewName, parameters);
59+
handler.OnNavigateTo(regionName, viewName, parameters, alias);
5860
}
5961
_bufferViewName.Push((regionName, viewName, parameters));
6062
}

0 commit comments

Comments
 (0)