using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; namespace InABox.Avalonia.Components.TimeSelector; public partial class TimeSelectorViewModel : BasePopupViewModel { [ObservableProperty] private TimeSpan? _time; [ObservableProperty] private Func? _getTime; [RelayCommand] private void Cancel() { Close(null); } [RelayCommand] private void Clear() { Close(TimeSpan.MinValue); } [RelayCommand] private void Now() { Close(DateTime.Now.TimeOfDay); } [RelayCommand] private void Select() { Close(GetTime is null ? Time : GetTime()); } }