XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFENewsApplication

【WinUI】新闻软件

公开
关注 0 Fork 0 Star 0
UTF-8

using XFENewsApplication.Models;

namespace XFENewsApplication.Utilities.Selector;

public partial class ArticleDataTemplateSelector : DataTemplateSelector
{
    public DataTemplate? DefaultDataTemplate { get; set; }
    public DataTemplate? TextDataTemplate { get; set; }
    public DataTemplate? AuthorDataTemplate { get; set; }
    public DataTemplate? TitleDataTemplate { get; set; }
    public DataTemplate? QuoteDataTemplate { get; set; }
    public DataTemplate? CustomTextDataTemplate { get; set; }
    public DataTemplate? ImageDataTemplate { get; set; }
    public DataTemplate? FlipImageDataTemplate { get; set; }
    protected override DataTemplate? SelectTemplateCore(object item)
    {
        if (item is ArticlePart articlePart)
        {
            if (articlePart is TextArticlePart)
            {
                if (articlePart is TitleArticlePart)
                    return TitleDataTemplate;
                if (articlePart is QuoteArticlePart)
                    return QuoteDataTemplate;
                if (articlePart is CustomTextArticlePart)
                    return CustomTextDataTemplate;
                return TextDataTemplate;
            }
            if (articlePart is ImageArticlePart)
                return ImageDataTemplate;
            if (articlePart is AuthorArticlePart)
                return AuthorDataTemplate;
            if (articlePart is FlipImageArticlePart)
                return FlipImageDataTemplate;
            return TextDataTemplate;
        }
        return DefaultDataTemplate;
    }
}