Я пытаюсь построить строку состояния, используя текстовое поле с использованием WPF и MVVM, статус приходит, но в какой-то момент в конце я хочу, чтобы он шел шаг за шагом.
Я пробовал этот код.
Я также попытался дать Thread.Sleep(200);
в коде, но никаких существенных изменений не было замечено.
Создание свойства для статуса в viewModel
private string myStatus;
public string MyStatus
{
get { return myStatus; }
set
{
myStatus = value;
NotifyPropertyChanged("MyStatus");
}
}
и его инициализация
public void LoadData()
{
MyStatus = "";
for(int i=0;i<list.Count();i++)
{
switch(list.ElementAt(i))
{
case -1:
MyStatus = "Negative value\n";
//Thread.Sleep(200);
break;
case 0:
MyStatus = "value is zero\n";
//Thread.Sleep(200);break;
case 1:
MyStatus = "Positive value\n";
//Thread.Sleep(200);
break;
}
}
}
и в представлении связывает его со свойством
<TextBox IsReadOnly="True" VerticalScrollBarVisibility="Visible" Name="tbMultiline" Text="{Binding MyStatus}" />
Текстовое поле заполняется, но в конце я хочу, чтобы это происходило во время каждой итерации цикла.
Пользовательский интерфейс останавливается на некоторое время и возобновляется после завершения кода бэкэнда. Я искал об этом, я узнал о диспетчере, может кто-нибудь сказать мне, как использовать диспетчер в шаблоне MVVM для переключения между потоком пользовательского интерфейса и потоком рендеринга.