WPF ProgressBar avec la Valeur de la liaison de données

Je suis en train de databind la valeur de la propriété d'une ProgressBar dans WPF. J'ai un bouton set jusqu'à incrémenter le databound int propriété de la Valeur de la ProgressBar. Lorsque j'appuie sur le bouton, il devrait faire de la Barre de progression de la Valeur de comptage de 1 à 100. Cependant... il ne semble pas fonctionner et je ne suis pas sûr de ce que je fais de mal. Voici mon code XAML...

<Window x:Class="ProgressBarExample2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="250" Width="400" Background="WhiteSmoke">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
    <Button Name="goButton" Height="30" Width="50" Margin="0,10,0,50" Click="goButton_Click">GO!</Button>
    <ProgressBar Name="progressBar" Width="300" Height="30" Value="{Binding Percent, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>

et voici mon code derrière...

public partial class MainWindow : Window, INotifyPropertyChanged
{
    #region INotifyPropertyChanged

    public event PropertyChangedEventHandler PropertyChanged;
    protected void NotifyPropertyChange(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    #endregion

    private int percent = 0;
    public int Percent
    {
        get { return this.percent; }
        set 
        {
            this.percent = value;
            NotifyPropertyChange("Percent");
        }
    }

    public MainWindow()
    {
        InitializeComponent();
    }


    private void goButton_Click(object sender, RoutedEventArgs e)
    {
        for (Percent = 0; Percent <= 100; Percent++)
        {
            Thread.Sleep(50);
        }
    }
}
vous pouvez peut-être essayer d'ajouter un timer sur le bouton cliquez sur démarrer la minuterie. Minuterie de rappel incrément de l' % - avec une bonne liaison de données cela devrait fonctionner. Rappels de la minuterie sont dans le thread d'arrière-plan de sorte que votre thread principal est libre de mettre à jour la barre de progression

OriginalL'auteur user1451495 | 2013-01-10