无法获得进度条运行

时间:2014-10-16 19:14:48

标签: c# wpf file-io progress-bar

在我的程序中,我有一个非常冗长的文件输入操作。在此操作过程中,我的应用程序冻结,直到文件加载(因为,我无法点击任何内容)。因此,我试图将进度条实现为加载屏幕,以便用户不会认为有问题。我创建了一个.xaml窗口,其中包含一个进度条和一个附加的ViewModel和DataModel,以方便进度条的属性。

为简单起见,在文件打开时运行的例程位于大while循环中。在此while循环之前,我打开加载窗口并将进度条的IsIndeterminate属性更改为true

我只使用IsIndeterminate属性,因为我只需要进度条看起来像这样:

enter image description here

但是,正如我之前提到的,在此过程中我的窗口冻结了。这也导致进度条冻结。如何在进行文件输入过程时显示此进度条并允许其运行?

修改

进度条的xaml:

<ProgressBar Name="Progress" Value="{Binding LoadScreenModel.Value}" Minimum="{Binding LoadScreenModel.Min}" Maximum="{Binding LoadScreenModel.Max}" IsIndeterminate="{Binding LoadScreenModel.IsIndeterminate}" />

进度条窗口的数据模型:

private int _value, _min = 0, _max = 100; //Progress Bar values
private bool _isIndeterminate;

public LoadingScreenDataModel()
{

}

//Progress Bar values
public int Value{...}
public int Min{...}
public int Max{...}
public bool IsIndeterminate{...}

运行文件输入例程的数据模型中的代码:

var LoadingWindow = new LoadingScreen();
LoadingWindow.Show(); //Open Window w/progress Bar
ViewModel.LoadScreenDataModel.IsIndeterminate = true; 

while()
{... /* Run File input routines **/ ...}

ViewModel.LoadScreenDataModel.IsIndeterminate = false;
LoadingWindow.Close(); //Close Window w/Progress Bar

0 个答案:

没有答案