108 lines
3.3 KiB
C#
108 lines
3.3 KiB
C#
|
|
// PickersPage - Picker, DatePicker, TimePicker Demo
|
||
|
|
|
||
|
|
using Microsoft.Maui.Controls;
|
||
|
|
|
||
|
|
namespace ShellDemo;
|
||
|
|
|
||
|
|
public partial class PickersPage : ContentPage
|
||
|
|
{
|
||
|
|
private int _eventCount = 0;
|
||
|
|
|
||
|
|
public PickersPage()
|
||
|
|
{
|
||
|
|
InitializeComponent();
|
||
|
|
|
||
|
|
// Set up date picker with current date
|
||
|
|
BasicDatePicker.Date = DateTime.Today;
|
||
|
|
DateSelectedLabel.Text = $"Selected: {DateTime.Today:d}";
|
||
|
|
|
||
|
|
// Set up range date picker
|
||
|
|
var startOfMonth = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
|
||
|
|
var endOfMonth = startOfMonth.AddMonths(1).AddDays(-1);
|
||
|
|
RangeDatePicker.MinimumDate = startOfMonth;
|
||
|
|
RangeDatePicker.MaximumDate = endOfMonth;
|
||
|
|
RangeDatePicker.Date = DateTime.Today;
|
||
|
|
|
||
|
|
// Set up styled date picker
|
||
|
|
StyledDatePicker.Date = DateTime.Today.AddDays(7);
|
||
|
|
|
||
|
|
// Set up time picker
|
||
|
|
BasicTimePicker.Time = DateTime.Now.TimeOfDay;
|
||
|
|
TimeSelectedLabel.Text = $"Selected: {DateTime.Now:t}";
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnFruitPickerChanged(object? sender, EventArgs e)
|
||
|
|
{
|
||
|
|
if (FruitPicker.SelectedIndex >= 0)
|
||
|
|
{
|
||
|
|
var item = FruitPicker.ItemsSource[FruitPicker.SelectedIndex]?.ToString();
|
||
|
|
FruitSelectedLabel.Text = $"Selected: {item}";
|
||
|
|
LogEvent($"Fruit selected: {item}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnColorPickerChanged(object? sender, EventArgs e)
|
||
|
|
{
|
||
|
|
if (ColorPicker.SelectedIndex >= 0)
|
||
|
|
{
|
||
|
|
var item = ColorPicker.ItemsSource[ColorPicker.SelectedIndex]?.ToString();
|
||
|
|
LogEvent($"Color selected: {item}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnSizePickerChanged(object? sender, EventArgs e)
|
||
|
|
{
|
||
|
|
if (SizePicker.SelectedIndex >= 0)
|
||
|
|
{
|
||
|
|
var item = SizePicker.ItemsSource[SizePicker.SelectedIndex]?.ToString();
|
||
|
|
LogEvent($"Size selected: {item}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnDateSelected(object? sender, DateChangedEventArgs e)
|
||
|
|
{
|
||
|
|
DateSelectedLabel.Text = $"Selected: {e.NewDate:d}";
|
||
|
|
LogEvent($"Date selected: {e.NewDate:d}");
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnRangeDateSelected(object? sender, DateChangedEventArgs e)
|
||
|
|
{
|
||
|
|
LogEvent($"Date (limited): {e.NewDate:d}");
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnStyledDateSelected(object? sender, DateChangedEventArgs e)
|
||
|
|
{
|
||
|
|
LogEvent($"Styled date: {e.NewDate:d}");
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnTimePickerPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||
|
|
{
|
||
|
|
if (e.PropertyName == nameof(TimePicker.Time))
|
||
|
|
{
|
||
|
|
var time = BasicTimePicker.Time;
|
||
|
|
TimeSelectedLabel.Text = $"Selected: {time:hh\\:mm}";
|
||
|
|
LogEvent($"Time selected: {time:hh\\:mm}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnStyledTimePickerPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||
|
|
{
|
||
|
|
if (e.PropertyName == nameof(TimePicker.Time))
|
||
|
|
{
|
||
|
|
LogEvent($"Styled time: {StyledTimePicker.Time:hh\\:mm}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnSetAlarmClicked(object? sender, EventArgs e)
|
||
|
|
{
|
||
|
|
LogEvent($"Alarm set for {AlarmTimePicker.Time:hh\\:mm}");
|
||
|
|
}
|
||
|
|
|
||
|
|
private void LogEvent(string message)
|
||
|
|
{
|
||
|
|
_eventCount++;
|
||
|
|
var timestamp = DateTime.Now.ToString("HH:mm:ss");
|
||
|
|
EventLogLabel.Text = $"[{timestamp}] {_eventCount}. {message}\n{EventLogLabel.Text}";
|
||
|
|
}
|
||
|
|
}
|