c# - WPF 数据绑定(bind) ProgressBar 不显示进度

标签 c# wpf data-binding progress-bar

我在让 ProgressBar 正常工作时遇到了问题。

XAML:

    <ProgressBar x:Name="ProgressBar" Value="{Binding Progress, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="37" Margin="10,35,0,0" VerticalAlignment="Top" Width="590"/>

代码隐藏:

    ProgressBar.DataContext = progressModel;

IProgressModel:

public interface IProgressModel
{
    double Minimum { get; set; }
    double Maximum { get; set; }
    double Progress { get; }
}

实现:

    private void WorkerOnDoWork(object sender, DoWorkEventArgs doWorkEventArgs)
    {
        Minimum = 0;
        Maximum = RenamableFiles.Count;

        var i = 0;
        foreach (var renamableFile in RenamableFiles)
        {
            var oldFilename = ReCreateOldFileName(renamableFile);
            var renameProposalFilename = CreateNewFileName(renamableFile);

            if (oldFilename != null && renameProposalFilename != null && !oldFilename.Equals(renameProposalFilename))
            {
                // File.Move(oldFilename, renameProposalFilename);
                Thread.Sleep(100);
                Progress = i++;
            }
        }
    }

还有非常简单的 PropertyChanged 机制:

    private double _progress;
    public double Progress 
    {
        get { return _progress; }
        set 
        { 
            _progress = value;
            OnPropertyChanged();
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        var handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }

ProgressBar 以“完整”开始并在整个过程中保持这种状态。我已经阅读了关于 SO 的所有相关主题,但没有运气。

我做错了什么?

提前致谢。

最佳答案

你也需要绑定(bind)你的最大值:

    <ProgressBar x:Name="ProgressBar" 
        Value="{Binding Progress}" 
        Maximum="{Binding Maximum}" 
        Minimum="{Binding Minimum}" 
        HorizontalAlignment="Left" Height="37" Margin="10,35,0,0" 
        VerticalAlignment="Top" Width="590"/>

关于c# - WPF 数据绑定(bind) ProgressBar 不显示进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776786/

相关文章:

c# - %= 运算符的作用是什么?

C# WPF RichText Box BackgroundProperty 从文件读取时返回 null

wpf - LoadedEvent 的路由事件类处理程序不适用于大多数类

c# - 数据绑定(bind)到父级可能为 null 的嵌套属性

c# - WPF 组合框绑定(bind) : can't change selection

c# - 数据绑定(bind)到 C# 中的自定义类

C# WebClient OpenRead url

c# - ImageMagick 根据宽度创建空白透明正方形

C# Roslyn API,读取 .cs 文件,更新类,写回 .cs 文件

c# - 命名空间 http ://schemas. 中不存在名称 'DockingManager"xceed.com/wpf/xaml/avalondock