diff --git a/Wino.Calendar.ViewModels/CalendarPageViewModel.cs b/Wino.Calendar.ViewModels/CalendarPageViewModel.cs
index fc598419..28cb9c3d 100644
--- a/Wino.Calendar.ViewModels/CalendarPageViewModel.cs
+++ b/Wino.Calendar.ViewModels/CalendarPageViewModel.cs
@@ -115,6 +115,7 @@ public partial class CalendarPageViewModel : CalendarBaseViewModel,
[ObservableProperty]
[NotifyPropertyChangedFor(nameof(IsEventDetailsVisible))]
[NotifyCanExecuteChangedFor(nameof(JoinOnlineCommand))]
+ [NotifyPropertyChangedFor(nameof(CanJoinOnline))]
public partial CalendarItemViewModel DisplayDetailsCalendarItemViewModel { get; set; }
public bool IsEventDetailsVisible => DisplayDetailsCalendarItemViewModel != null;
@@ -227,12 +228,6 @@ public partial class CalendarPageViewModel : CalendarBaseViewModel,
};
}
- public override void OnNavigatedFrom(NavigationMode mode, object parameters)
- {
- // Do not call base method because that will unregister messenger recipient.
- // This is a singleton view model and should not be unregistered.
- }
-
public override void OnNavigatedTo(NavigationMode mode, object parameters)
{
base.OnNavigatedTo(mode, parameters);
diff --git a/Wino.Mail.WinUI/Controls/Calendar/CalendarItemControl.xaml b/Wino.Mail.WinUI/Controls/Calendar/CalendarItemControl.xaml
index 0001c2ae..fb7d9711 100644
--- a/Wino.Mail.WinUI/Controls/Calendar/CalendarItemControl.xaml
+++ b/Wino.Mail.WinUI/Controls/Calendar/CalendarItemControl.xaml
@@ -23,6 +23,7 @@
Tapped="ControlTapped"
ToolTipService.ToolTip="{x:Bind CalendarItem.DisplayTitle, Mode=OneWay}">
+
@@ -36,20 +37,36 @@
+
+ Background="{x:Bind helpers:XamlHelpers.GetSolidColorBrushFromHex(CalendarItem.AssignedCalendar.BackgroundColorHex), Mode=OneWay}"
+ Opacity="0.9" />
+
+
+
+/// DataTemplateSelector that selects the appropriate stripe template based on CalendarItemShowAs status.
+///
+public class CalendarItemShowAsStripeTemplateSelector : DataTemplateSelector
+{
+ public DataTemplate FreeTemplate { get; set; }
+ public DataTemplate TentativeTemplate { get; set; }
+ public DataTemplate BusyTemplate { get; set; }
+ public DataTemplate OutOfOfficeTemplate { get; set; }
+ public DataTemplate WorkingElsewhereTemplate { get; set; }
+
+ protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
+ {
+ if (item is CalendarItemViewModel calendarItem)
+ {
+ return calendarItem.CalendarItem.ShowAs switch
+ {
+ CalendarItemShowAs.Free => FreeTemplate,
+ CalendarItemShowAs.Tentative => TentativeTemplate,
+ CalendarItemShowAs.Busy => BusyTemplate,
+ CalendarItemShowAs.OutOfOffice => OutOfOfficeTemplate,
+ CalendarItemShowAs.WorkingElsewhere => WorkingElsewhereTemplate,
+ _ => BusyTemplate // Default to Busy
+ };
+ }
+
+ return base.SelectTemplateCore(item, container);
+ }
+}
diff --git a/Wino.Mail.WinUI/Styles/WinoCalendarResources.xaml b/Wino.Mail.WinUI/Styles/WinoCalendarResources.xaml
index 9a545f5e..242934c0 100644
--- a/Wino.Mail.WinUI/Styles/WinoCalendarResources.xaml
+++ b/Wino.Mail.WinUI/Styles/WinoCalendarResources.xaml
@@ -25,9 +25,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -60,7 +93,11 @@
-
+