28 lines
1.1 KiB
C#
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)
|
|
};
|
|
}
|
|
}
|