Ich habe ein bisschen Mühe, eine ProgressBar
zu arbeiten. Wenn ich anfange, passiert nichts und ich kann nicht sehen warum?Fortschrittsbalken MVVM?
Ich dachte, dass dies die Aufgabe worker.RunWorkerAsync();
Das folgende Beispiel und in eine neue Lösung eingefügt werden soll kopiert werden kann beginnen würde und für die Prüfung durchgeführt werden, wenn nötig.
Die XAML,
<Grid Margin="20">
<ProgressBar
Height="60"
Minimum="0"
Maximum="100"
Value="{Binding Progress, Mode=OneWay}"
Visibility="{Binding ProgressVisibility}"/>
</Grid>
Mein Code,
public partial class MainWindow : Window
{
public ProggressbarViewModel PsVm { get; set; }
public MainWindow()
{
InitializeComponent();
PsVm = new ProggressbarViewModel();
}
public class ProggressbarViewModel
{
public ProggressbarViewModel()
{
var worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.ProgressChanged += ProgressChanged;
worker.RunWorkerAsync();
}
private int _progress;
public int Progress
{
get { return _progress; }
set
{
if (_progress == value) return;
_progress = value;
OnPropertyChanged();
}
}
private void DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
_progress = i;
OnPropertyChanged();
}
}
private void ProgressChanged(object sender, ProgressChangedEventArgs e)
{
Progress = e.ProgressPercentage;
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Jede Hilfe sehr geschätzt würde.
EDIT: Die Frage ist ähnlich ist möglicherweise ein Duplikat in diesem Sinne, aber die verknüpfte Antwort löste mein Problem nicht, wie es im Duplicate-Banner angibt.
Mögliche Duplikat von [Wie implementieren ein Fortschrittsbalken mit dem MVVM-Muster] (https://stackoverflow.com/questions/3520359/how-to-implement-a-progress-bar-using-the-mvvm-pattern) – Clint
@ Clint, ja, ich sah diesen Thread . Hilft mir nicht viel, da ich nicht weiß, wo ich falsch liege. – KyloRen