-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPopupWithInitReturnable.xaml.cs
More file actions
45 lines (38 loc) · 1.72 KB
/
PopupWithInitReturnable.xaml.cs
File metadata and controls
45 lines (38 loc) · 1.72 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
using CommunityToolkit.Maui;
using CommunityToolkit.Maui.Extensions;
using CommunityToolkit.Maui.Views;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
namespace PopupV2NavigationWithParameters;
public partial class PopupWithInitReturnable : Popup<PopupWithInitReturnable_ReturnData>
{
private readonly PopupWithInitReturnable_InitData initData;
public PopupWithInitReturnable(PopupWithInitReturnableVm vm, PopupWithInitReturnable_InitData initData)
{
InitializeComponent();
BindingContext = vm;
Opened += MessagePopup_Opened;
this.initData = initData;
}
private void MessagePopup_Opened(object? sender, EventArgs e)
{
if (BindingContext is PopupWithInitReturnableVm vm)
vm.Init(initData);
}
}
public record PopupWithInitReturnable_InitData(string Title, string Message);
public record PopupWithInitReturnable_ReturnData(string ReturnMessage);
public partial class PopupWithInitReturnableVm(IPopupService popupService) : ObservableObject
{
private readonly IPopupService popupService = popupService;
[ObservableProperty] string _message = "Help... i'm empty :(", title = "No title :(";
public void Init(PopupWithInitReturnable_InitData initData)
{
Title = initData.Title;
Message = initData.Message;
}
[RelayCommand]
private static void NegativeAnswer() => Application.Current?.Windows[0]?.Page?.Navigation.ClosePopupAsync<PopupWithInitReturnable_ReturnData>(new("Negative"));
[RelayCommand]
private static void PositiveAnwer() => Application.Current?.Windows[0]?.Page?.Navigation.ClosePopupAsync<PopupWithInitReturnable_ReturnData>(new("Positive"));
}