Код: Выделить всё
У меня есть сервис, который будет выполнять обратный вызов с помощью следующий токен по мере его получения:
Код: Выделить всё
var result = await service.StreamContentSummary(
...,
(text) =>
{
dispatcher.TryEnqueue(() =>
{
if (done)
{
return;
}
that.ShowPlaceholder = false;
that.Summary = $"{that.Summary}{text}";
});
},
refresh);
Код: Выделить всё
ShowPlaceholder
Код: Выделить всё
[ObservableProperty]
private string summary;
[ObservableProperty]
private bool showPlaceholder = true;
Я попробовал вызвать this.Bindings.Update()< /code> в компоненте, чтобы принудительно обновлять привязки в каждом событии PropertyChanged, но пользовательский интерфейс по-прежнему не обновляется, чтобы отобразить содержимое, пока все не будет сделано. p>
Код: Выделить всё
In Loaded...
ViewModel.PropertyChanged += ViewModel_PropertyChanged;
...
private void ViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(ViewModel.Summary))
{
this.Bindings.Update();
}
}
Делает ли WinUI3 что-нибудь пакетной обработки для ограничения скорости обновлений? Есть ли способ заставить пользовательский интерфейс обновляться при изменении свойства Summary в реальном времени, или существует альтернативный подход для выполнения «потоковых» обновлений пользовательского интерфейса?
Подробнее здесь: https://stackoverflow.com/questions/785 ... ate-the-ui