У меня есть пользовательский элемент управления, в котором есть сетка с примерно 2900 элементами, я ничего не могу с этим поделать, так как бизнес этого хочет ... Очевидно, что это медленно загружается / отображается, поэтому я создалэтот прием с использованием диспетчера в модели представления, которая обрабатывает событие (событие призмы ... не стандартное событие Windows).
public void ShowPopUp(Type viewType)
{
var waitScreen = new Controls.Views.SampleView();
var popUp = new ShellBlank();
popUp.Content = waitScreen;
popUp.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
popUp.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Background, new Action(delegate() {
popUp.Content = container.Resolve(viewType);})
);
popUp.ShowDialog();
}
Он работает просто отлично, однако в моем SampleView (как он называется в данный момент) есть индикатор прогресса, который не определяется, однако он никогда не обновляется, как вы знаете, - зеленое бара и обратно четвертое... Вот XAML для этого.
<Border>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Label Margin="12" FontSize="16" Foreground="WhiteSmoke" Content="Loading... Please wait"/>
<ProgressBar Grid.Row="1" IsIndeterminate="True" Width="280" Height="24"/>
</Grid>
</Border>
Это как-то связано с тем, что диспетчер не позволяет обновляться?
Кто-нибудь когда-нибудь делал что-то подобное?есть какие-нибудь предложения?
Спасибо!