Files
Wino-Mail/Wino.Mail.WinUI/Selectors/MailItemContainerSelector.cs
T
2025-11-15 14:52:01 +01:00

28 lines
1.1 KiB
C#

using System;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Wino.Mail.ViewModels.Collections;
using Wino.Mail.ViewModels.Data;
namespace Wino.Mail.WinUI.Selectors;
public partial class MailItemContainerSelector : DataTemplateSelector
{
public DataTemplate? EmailTemplate { get; set; }
public DataTemplate? ThreadExpanderTemplate { get; set; }
public DataTemplate? DateGroupHeaderTemplate { get; set; }
public DataTemplate? SenderGroupHeaderTemplate { get; set; }
protected override DataTemplate SelectTemplateCore(object item)
{
return item switch
{
MailItemViewModel => EmailTemplate ?? throw new ArgumentNullException(nameof(EmailTemplate)),
ThreadMailItemViewModel => ThreadExpanderTemplate ?? throw new ArgumentNullException(nameof(ThreadExpanderTemplate)),
DateGroupHeader => DateGroupHeaderTemplate ?? throw new ArgumentNullException(nameof(DateGroupHeaderTemplate)),
SenderGroupHeader => SenderGroupHeaderTemplate ?? throw new ArgumentNullException(nameof(SenderGroupHeaderTemplate)),
_ => base.SelectTemplateCore(item)
};
}
}