Update-text in der Statusleiste in wpf mit C#

Ich habe eine TextBox in der Statusleiste in wpf, die ich aktualisieren möchten.

Habe ich eine Liste von Dateien in der ListBox. Auf jeder Datei, die ich tun würde eine operation durch Aufruf der Methode sagen ProcessFile().
Also immer dann, wenn die Verarbeitung der Dateien abgeschlossen ist, möchte ich zeigen, dass die Dateinamen in die Statusleiste ein text.

Habe ich versucht, so etwas wie dieses:

private void button_Click(object sender, RoutedEventArgs e)
    {

        statusBar.Visibility = Visibility.Visible;

        DispatcherFrame frame = new DispatcherFrame();
        Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(TimeConsumingMethod), frame);
        Dispatcher.PushFrame(frame);
        statusBar.Visibility = Visibility.Collapsed;
    }

    public object TimeConsumingMethod(Object arg)
    {
        ((DispatcherFrame)arg).Continue = false;

        foreach (string fileName in destinationFilesList.Items)
        {
            txtStatus.Text = fileName.ToString();
            //Assume that each process takes some time to complete
            System.Threading.Thread.Sleep(1000);
        }
        return null;
    }

Aber ich kann nur die Letzte Datei den Namen in der Statusleiste.
Was stimmt mit dem code? Kann jemand korrigieren?
Danke.

InformationsquelleAutor Archie | 2010-04-30

Schreibe einen Kommentar