39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using BeWo.ViewModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace BeWo.View.TemplateSelectors
|
|
{
|
|
public class AiConversationMessageTemplateSelector : DataTemplateSelector
|
|
{
|
|
public DataTemplate SystemMessageTemplate { get; set; }
|
|
public DataTemplate AssistentMessageTemplate { get; set; }
|
|
public DataTemplate UserMessageTemplate { get; set; }
|
|
|
|
public override DataTemplate SelectTemplate(object item, DependencyObject container)
|
|
{
|
|
if (item is AiConversationMessageVM message)
|
|
{
|
|
switch (message.Role)
|
|
{
|
|
case BS.Shared.AiConversationMessageRole.System:
|
|
return SystemMessageTemplate;
|
|
case BS.Shared.AiConversationMessageRole.Assistent:
|
|
return AssistentMessageTemplate;
|
|
case BS.Shared.AiConversationMessageRole.User:
|
|
return UserMessageTemplate;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
throw new NotImplementedException("AiConversationMessageVM.Role is null");
|
|
}
|
|
}
|
|
}
|