-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMainModel.cs
More file actions
32 lines (25 loc) · 951 Bytes
/
MainModel.cs
File metadata and controls
32 lines (25 loc) · 951 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
namespace DevTKSS.Uno.XamlNavigationApp.Presentation;
public partial record MainModel
{
private readonly INavigator _navigator;
private readonly IRouteNotifier _routeNotifier;
public MainModel(
INavigator navigator,
IRouteNotifier routeNotifier)
{
_navigator = navigator;
_routeNotifier = routeNotifier;
_routeNotifier.RouteChanged += Main_OnRouteChanged;
}
private async void Main_OnRouteChanged(object? sender, RouteChangedEventArgs e)
{
await Title.SetAsync(e.Navigator?.Route?.ToString());
}
public IState<string> Title => State<string>.Value(this, () => _navigator.Route?.ToString() ?? string.Empty);
public IState<string> Name => State<string>.Value(this, () => string.Empty);
public async Task GoToSecond()
{
var name = await Name;
await _navigator.NavigateViewModelAsync<SecondModel>(this, data: new Entity(name!));
}
}