2025-11-14 18:51:48 +01:00
|
|
|
using System;
|
|
|
|
|
using Microsoft.UI.Xaml;
|
2025-09-29 11:16:14 +02:00
|
|
|
using Microsoft.UI.Xaml.Controls;
|
|
|
|
|
using Wino.Core.Domain.Enums;
|
|
|
|
|
|
|
|
|
|
namespace Wino.Selectors;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Template selector for previewing mail item display modes in Settings->Personalization page.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class MailItemDisplayModePreviewTemplateSelector : DataTemplateSelector
|
|
|
|
|
{
|
2025-11-14 18:51:48 +01:00
|
|
|
public DataTemplate? CompactTemplate { get; set; }
|
|
|
|
|
public DataTemplate? MediumTemplate { get; set; }
|
|
|
|
|
public DataTemplate? SpaciousTemplate { get; set; }
|
2025-09-29 11:16:14 +02:00
|
|
|
|
|
|
|
|
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
|
|
|
|
|
{
|
|
|
|
|
if (item is MailListDisplayMode mode)
|
|
|
|
|
{
|
|
|
|
|
switch (mode)
|
|
|
|
|
{
|
|
|
|
|
case MailListDisplayMode.Spacious:
|
2025-11-14 18:51:48 +01:00
|
|
|
return SpaciousTemplate ?? throw new ArgumentException(nameof(SpaciousTemplate));
|
2025-09-29 11:16:14 +02:00
|
|
|
case MailListDisplayMode.Medium:
|
2025-11-14 18:51:48 +01:00
|
|
|
return MediumTemplate ?? throw new ArgumentException(nameof(MediumTemplate));
|
2025-09-29 11:16:14 +02:00
|
|
|
case MailListDisplayMode.Compact:
|
2025-11-14 18:51:48 +01:00
|
|
|
return CompactTemplate ?? throw new ArgumentException(nameof(CompactTemplate));
|
2025-09-29 11:16:14 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return base.SelectTemplateCore(item, container);
|
|
|
|
|
}
|
|
|
|
|
}
|