Я знаю, его старая нить. Но если кто-то еще интересно ...
Вы можете использовать PriorityBinding, есть великолепно объяснил пример в этой статье: http://www.switchonthecode.com/tutorials/wpf-tutorial-priority-bindings
Идея заключается в том, чтобы оговорить PriorityBinding, который в свою очередь, определяет несколько регулярных привязок, как это :
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.Text>
<PriorityBinding>
<Binding ElementName="MainWindow" Path="Slow" IsAsync="True" />
<Binding ElementName="MainWindow" Path="Fast" />
</PriorityBinding>
</TextBlock.Text>
</TextBlock>
Порядок привязок определяет приоритет с наивысшим приоритетом. В этом случае Fast binding (самый низкий приоритет) будет сразу заполнять текстовый блок, потому что у вас может быть связанная с строковым свойством «Загрузка ...» или «Сортировка ...» в зависимости от того, что происходит в то время, и есть без задержки.
Но позже, когда свойство медленной привязки async возвращает значение, это более высокий приоритет означает, что он будет принят, поскольку он ранее в списке, и его результаты будут привязаны вместо этого, показывая фактические результаты.
Если вам нужно заполнить всплывающее окно прогресса, вы можете реализовать это в getter связанного свойства в вашей ViewModel, хотя я не пробовал ничего подобного.
Спасибо, что ... Попробуем найти способ привязать его либо через viewmodel, и/или xaml к всплывающему окну «Ожидание» .. обеспечивают огромный уровень простоты с помощью модели приложения WPF-MVVM. Однако .. похоже, нет простого способа добиться этого. – Bhuvan
@Bhuvan: У вас также может быть общедоступное свойство enum, которое предоставляет текущее состояние виртуальной машины ... Инициализировано, загружается, готово. Затем вы можете привязываться к этому в пользовательском интерфейсе и показывать пользователю все, что захотите, во время этих состояний ... – Will