【问题标题】:WPF ProgressBar doesn't update?WPF ProgressBar 不更新?
【发布时间】:2011-04-12 08:43:31
【问题描述】:

我正在尝试使用数据绑定来更新我的进度条。 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() 的更新,稍后我将实现线程。数据绑定必须正确,因为我还有其他组件可以正常工作。

那么为什么我的进度条没有更新呢?

感谢您的帮助。

【问题讨论】:

  • “Application.DoEvents()”有什么作用?它不是标准的 WPF 函数。
  • 我知道。正如我所说,它将很快被线程取代,但对于某些测试,它会在我的循环期间显示更改。

标签: c# .net data-binding progress-bar


【解决方案1】:

您需要实现一种方法,以便在 ProgressBarValue 更改时通知您的 ProgressBar。看看INotifyPropertyChanged 接口。

【讨论】:

  • 如我在文中所说,它已实现。其他组件正在更新。我使用了 MVVM,所以我的 ViewModelBase 扩展了 INotifyPropertyChanged。
  • @Forlan07: 你的属性设置器应该包括对OnPropertyChanged("ProgressBarValue")的调用
  • 我已经尝试过了,但似乎什么也没发生...顺便说一句,我不需要将该函数用于我的列表框数据绑定等等。
  • 我认为你把事情搞糊涂了。
【解决方案2】:

INotifyPropertyChanged 如何让您的 UI 控件检测更新的值?

//丹尼尔

【讨论】:

    【解决方案3】:

    我希望实际上在原始帖子中添加评论,但我将不得不解决有关通过答案文本 bax 输入的原始帖子的问题。您可以将代码作为一个单元发布吗?也就是说,完成绑定需要添加的所有代码?我无法将所有部分组合在一起为我的进度条的最大值和值进行数据绑定,这可能会有所帮助。

    【讨论】:

      【解决方案4】:

      我在我的代码中发现了错误。不幸的是,我改变了我的私人成员,而不是公共财产。因此,当使用 this.ProgressBarValue += 1; 而不是 this.progressBarValue += 1; 时,一切正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-02
        • 2015-08-05
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 2016-02-24
        • 1970-01-01
        • 2011-03-05
        相关资源
        最近更新 更多