protected override DataTemplate?SelectTemplateCore(object item, DependencyObject container) { BindableMessage message = (BindableMessage)item; return(message.Message.Type switch { MessageType.Default or MessageType.Reply => DefaultTemplate, MessageType.RecipientAdd or MessageType.RecipientRemove or MessageType.Call or MessageType.ChannelNameChange or MessageType.ChannelIconChange or MessageType.ChannelPinnedMessage or MessageType.GuildMemberJoin or MessageType.UserPremiumGuildSubscription or MessageType.UserPremiumGuildSubscriptionTier1 or MessageType.UserPremiumGuildSubscriptionTier2 or MessageType.UserPremiumGuildSubscriptionTier3 or MessageType.ChannelFollowAdd or MessageType.GuildDiscoveryDisqualified or MessageType.GuildDiscoveryRequalified or MessageType.GuildDiscoveryGracePeriodInitialWarning or MessageType.GuildDiscoveryGracePeriodFinalWarning or MessageType.ThreadCreated or MessageType.ApplicationCommand or MessageType.ThreadStarterMessage or MessageType.GuildInviteReminder or MessageType.ContextMenuCommand => InfoTemplate, _ => null, });
/// <summary> /// Scrolls <paramref name="e"/> into view. /// </summary> private void ViewModel_ScrollTo(object sender, BindableMessage e) { if (e != null) { MessageList.ScrollIntoView(e); } }
public static string Convert(BindableMessage message) { string resource = message.Message.Type switch { MessageType.RecipientAdd => "InfoMessage/RecipientAdd", MessageType.RecipientRemove => "InfoMessage/RecipientRemove", MessageType.Call => "InfoMessage/Call", MessageType.ChannelNameChange => "InfoMessage/ChannelNameChange", MessageType.ChannelIconChange => "InfoMessage/ChannelIconChange", MessageType.ChannelPinnedMessage => "InfoMessage/ChannelPinnedMessage", MessageType.GuildMemberJoin => "InfoMessage/GuildMemberJoin", _ => "InfoMessage/Unknown", }; string content = App.Current.Services.GetRequiredService <ILocalizationService>()[resource]; content = content.Replace(@"{author}", $"<@{message.Author.User.Id}>"); return(content); }