WPF ProgressBar не обновляется? - PullRequest
3 голосов
/ 12 апреля 2011

Я пытаюсь обновить свой индикатор выполнения, используя привязки данных. Файл XAML содержит индикатор выполнения:

<ProgressBar Height="23" Name="progressBar" VerticalAlignment="Bottom" Margin="207,444,0,0" Minimum="0" Maximum="{Binding ProgressBarMax}" Value="{Binding ProgressBarValue}" />

Мой соответствующий класс C # содержит геттер и сеттер:

    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 (), позже я буду реализовывать потоки. Привязка данных должна быть правильной, потому что у меня есть другие компоненты, которые работают нормально.

Так почему же мой индикатор прогресса не обновляется?

Спасибо за вашу помощь.

Ответы [ 4 ]

1 голос
/ 12 августа 2014

Я надеялся добавить комментарий к оригинальному сообщению, но мне придется согласиться с вопросом относительно оригинала, введенного через текст ответа bax.Можете ли вы опубликовать свой код как единое целое?То есть весь код, который нужно было добавить для завершения привязки?У меня не получается собрать все части вместе, чтобы выполнить привязку данных для моего максимума и значения для моего индикатора выполнения, и это может очень помочь.

1 голос
/ 12 апреля 2011

А как насчет INotifyPropertyChanged, чтобы элементы управления пользовательского интерфейса могли определять обновленные значения?

// * Даниель 1003 *

1 голос
/ 12 апреля 2011

Вам необходимо реализовать способ уведомления вашего ProgressBar при каждом изменении ProgressBarValue. Посмотрите на интерфейс INotifyPropertyChanged .

0 голосов
/ 12 апреля 2011

Я нашел ошибку в своем коде. К сожалению, я сменил своих частных пользователей, а не публичную собственность. Так что при использовании this.ProgressBarValue += 1; вместо this.progressBarValue += 1; все работает нормально.

...