【发布时间】:2018-12-31 02:01:20
【问题描述】:
当我让进程开始工作时,当我尝试添加 ProgressBar 以向用户提供进程没有崩溃的线索时,我可能遇到了线程问题。既然这已经足够了,那么 Indefinite ProgressBar 对我来说就很好了。
<ProgressBar x:Name="ProcessProgress" Minimum="0" Maximum="100" Visibility="Hidden" IsIndeterminate="False" Width="305" Height="20" Margin="240,214,248,10"></ProgressBar>
我试图启动一个确定长度的进度条,在单击“开始”按钮之前它是不可见的:
private void Start_Click(object sender, RoutedEventArgs e)
{
...
//process starts here
var fP = new FileProcessor();
ProcessProgress.IsIndeterminate = true;
ProcessProgress.Visibility = Visibility.Visible;
...
//finally show the progressbar as full when done
ProcessProgress.IsIndeterminate = false;
ProcessProgress.Value = ProcessProgress.Maximum;
}
它只是运行整个过程,我的栏没有出现。
如何在此过程中生成进度条?
【问题讨论】:
-
异步等待是要走的路。无论如何,您都不应该对背后的代码进行实际操作。应该通过 ViewModel + 命令模式来完成。我知道它有很多东西要学,但如果你要做,最好做对:)
-
@Steve 是的,你完全正确,我很欣赏这个姿态。我可以要求一个适当的提示(可能是链接或参考书目,一系列视频)?我想很快参与进来,因为在下个月初我需要将它连接到一个 SQL 服务器,而我的团队合作伙伴实际上都没有编写代码(如果你知道我的意思的话)。
-
关键字:“MVVM”、“WPF ICommand”、“async await”、“c# Task”。谷歌这些教程并很好地了解它们是什么以及如何正确使用它们然后你就可以开始了。可能需要 2 周以上才能完成所有工作。 Sql 需要几个月的时间才能掌握,所以请记住这一点。
-
我不能说这是否适用于您的特定情况,但请参阅我的 answer 我在其中谈论这个特定主题。
-
@scharette 感谢您的评论。我很快就会达到顶峰,希望它能带来红利,因为我们真的真的真的没有时间了。 :(
标签: c# wpf user-interface async-await