Изменения обновления пользовательского интерфейса, внесенные в элемент, находящийся в ObservableCollection.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Изменения обновления пользовательского интерфейса, внесенные в элемент, находящийся в ObservableCollection.

Сообщение Anonymous »

Сообщение:

Код: Выделить всё

public partial class Message : ObservableObject
{
[ObservableProperty]
public string text;
[ObservableProperty]
public bool isUser;

}
Наблюдаемая коллекция:

Код: Выделить всё

public class MainPageViewModel : ObservableObject
{
public ObservableCollection Messages { get; } = new();
Когда пользователь отправляет сообщение (выполнение кнопки)

Код: Выделить всё

var aiResponse = new Message { Text = string.Empty, IsUser = false };
Messages.Add(aiResponse);

await StreamAiResponseAsync(MessageText, aiResponse);
Потоковое вещание:

Код: Выделить всё

    await foreach(var text in session.ChatAsync(new ChatHistory.Message(AuthorRole.User, userInput), inferenceParams))
{
responseBuilder.AppendLine(text);
aiMessage.Text = responseBuilder.ToString();
Console.Write(text);
await MainThread.InvokeOnMainThreadAsync(() =>
{
OnPropertyChanged(nameof(Messages));
// Force layout update
(Application.Current.MainPage as IView)?.InvalidateArrange();
});

}
Код XAML:

Код: Выделить всё

...


Подробнее здесь: [url]https://stackoverflow.com/questions/78786106/ui-updating-changes-made-in-an-item-thats-in-an-observablecollection[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»