diff --git a/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.Core/RealtimeApiSdk.Conversation.cs b/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.Core/RealtimeApiSdk.Conversation.cs index 51811fe..3bc5ddc 100644 --- a/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.Core/RealtimeApiSdk.Conversation.cs +++ b/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.Core/RealtimeApiSdk.Conversation.cs @@ -1,11 +1,13 @@ using Navbot.RealtimeApi.Dotnet.SDK.Core.Events; using Navbot.RealtimeApi.Dotnet.SDK.Core.Model.Common; +using System.ComponentModel; using System.Text; namespace Navbot.RealtimeApi.Dotnet.SDK.Core; -public partial class RealtimeApiSdk +public partial class RealtimeApiSdk : INotifyPropertyChanged { + public event PropertyChangedEventHandler? PropertyChanged; private readonly List conversationEntries = new List(); private readonly StringBuilder conversationTextBuilder = new StringBuilder(); public IReadOnlyList ConversationEntries => conversationEntries.AsReadOnly(); @@ -28,6 +30,8 @@ private void AddConversationEntry(string source, string content) conversationEntries.Add(entry); conversationTextBuilder.AppendLine($"{entry.UTCTimestamp:HH:mm:ss} [{entry.Source}] {entry.Content}"); + + NotifyConversationAsTextChanged(); } protected virtual void OnSpeechTextAvailable(TranscriptEventArgs e) @@ -41,4 +45,13 @@ protected virtual void OnPlaybackTextAvailable(TranscriptEventArgs e) AddConversationEntry("AI", e.Transcript); PlaybackTextAvailable?.Invoke(this, e); } + protected virtual void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + private void NotifyConversationAsTextChanged() + { + OnPropertyChanged(nameof(ConversationAsText)); + } } diff --git a/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.WPF.Sample/MainWindow.xaml b/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.WPF.Sample/MainWindow.xaml index e10f439..cd89314 100644 --- a/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.WPF.Sample/MainWindow.xaml +++ b/Navbot.RealtimeApi.Dotnet.SDK/Navbot.RealtimeApi.Dotnet.SDK.WPF.Sample/MainWindow.xaml @@ -40,7 +40,7 @@ - + /// Start / Stop Speech Recognition ///