Добавьте два свойства к вашей виртуальной машине:
bool IsProgressBarVisible
double ProgressValue
Если вы запустите длительную операцию в своей виртуальной машине, установите для свойства IsProgressBarVisible значение true и установите периодичность ProgressValue на текущее значение прогресса. Попробуйте вычислить значение от 0 до 100. Это имеет то преимущество, что вам не нужно предоставлять минимальное и максимальное значение. После завершения асинхронной операции установите для параметра IsProgressBarVisible значение false.
В XAML свяжите эти два свойства. Используйте конвертер значений, чтобы преобразовать булевскую видимость в видимость.
<ProgressBar Value="{Binding ProgressValue}" Visibility="{Binding IsProgressBarVisible,Converter={StaticResource BooleanToVisibility_ValueConverter}}"/>