Я продолжаю читать, насколько Caliburn хорош в маршалинге потоков и как невероятно легко обновить поток пользовательского интерфейса, но я не могу заставить его работать, и не могу найти пример, который показывает это, поэтому мне нужна помощь ...
Вот мой XAML ...
<StackPanel Orientation="Vertical" HorizontalAlignment="Left">
<Label Content="Progress For Current File" />
<WrapPanel>
<ProgressBar x:Name="CurrentFileProgress" Width="500" Height="25" Minimum="0" Maximum="1" />
<Label Content="1 of 25" />
</WrapPanel>
</StackPanel>
Вот моя ViewModel ...
public void Go()
{
var files = Directory.GetFiles(PathToFiles, "*.sql");
CurrentFileProgress = 0;
for (int iter = 1; iter <= files.Length; iter++)
{
CurrentFileProgress = iter / (files.Length * 1.0f);
System.Threading.Thread.Sleep(250);
}
}
private double _CurrentFileProgress = 3; //For design time look
public double CurrentFileProgress
{
get { return _CurrentFileProgress; }
set
{
_CurrentFileProgress = value;
NotifyOfPropertyChange(() => CurrentFileProgress);
}
}
Это достаточно просто, и через несколько секунд мой индикатор прогресса на 100%, но он не шагает, как я ожидал.