[英]WPF ProgressBar doesn't update?
我试图通过使用数据绑定来更新我的进度条。 XAML文件包含进度条:
<ProgressBar Height="23" Name="progressBar" VerticalAlignment="Bottom" Margin="207,444,0,0" Minimum="0" Maximum="{Binding ProgressBarMax}" Value="{Binding ProgressBarValue}" />
我的相关C#类包含getter和setter:
private int progressBarMax;
public int ProgressBarMax
{
get
{
if (this.progressBarMax == 0)
this.progressBarMax = 1;
return this.progressBarMax;
}
set
{
this.progressBarMax = value;
}
}
private int progressBarValue;
public int ProgressBarValue
{
get
{
return progressBarValue;
}
set
{
progressBarValue = value;
}
}
在我的“更新”方法中,正在设置最大值。 比如像this.progressBarMax = 100;
。 在循环中,进度条值获取值+ = 1.要查看我使用Application.DoEvents()的更新,稍后我将实现线程。 数据绑定必须是正确的,因为我有其他组件可以正常工作。
那么为什么我的进度条没有更新?
谢谢您的帮助。
我本来希望在原帖中添加评论,但是我将不得不通过答案文本bax来解决原始问题。 你可以将你的代码作为一个单元发布吗? 也就是说,为完成绑定需要添加的所有代码? 我无法将所有部分组合在一起,为我的进度条的最大值和值进行数据绑定,这可能会有所帮助。
您需要实现一种方法,以便在ProgressBarValue更改时通知ProgressBar。 看看INotifyPropertyChanged界面。
那么INotifyPropertyChanged会让你的UI控件检测到更新的值?
//丹尼尔
我在代码中发现了错误。 不幸的是,我改变了我的私人会员,而不是公共财产。 所以当使用this.ProgressBarValue += 1;
而不是this.progressBarValue += 1;
一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.