WPF MVVM aktualisiert die Ansicht nichtC#

Ein Treffpunkt für C#-Programmierer
Guest
 WPF MVVM aktualisiert die Ansicht nicht

Post by Guest »

Ich entwickle eine Anwendung, die eine Stoppuhr benötigt. Und ich möchte die verstrichene Zeit mithilfe eines Textblocks anzeigen. Mein Problem ist, dass die Ansicht nicht aktualisiert wird, ich aber ICommands verwenden kann.
Hier weise ich den DataContext zu

Code: Select all

public partial class ProgressPage : Grid
{
public ProgressPage(ProjectInfo projectInfo)
{
DataContext = new ProgressViewModel(projectInfo);
InitializeComponent();
}
}
Hier ist mein ViewModel

Code: Select all

public class ProgressViewModel : INotifyPropertyChanged
{
private ProjectInfo projectInfo;
private ICommand _start;
private DispatcherTimer timer = new()
{
Interval = TimeSpan.FromSeconds(1)
};

public event PropertyChangedEventHandler? PropertyChanged;

public ProjectInfo ProjectInfo
{
get { return projectInfo; }
set
{
projectInfo = value;
NotifyPropertyChanged();
}
}

private string elapsedTimeString;

public string ElapsedTimeString
{
get { return elapsedTimeString; }
set
{
elapsedTimeString = value;
NotifyPropertyChanged();
}
}

public ICommand StartCommand
{
get
{
_start ??= new RelayCommand(
p => true,
p => Start());
return _start;
}
}

private void Start()
{
ProjectInfo.CurrentStartedTime = DateTime.Now;
timer.Start();
}

public ProgressViewModel(ProjectInfo projectInfo)
{
ProjectInfo = projectInfo;
timer.Tick += Tick;
}

private void Tick(object? sender, EventArgs e)
{
ElapsedTimeString = (DateTime.Now - ProjectInfo.CurrentStartedTime).ToString(@"hh\:mm\:ss");
}

private void NotifyPropertyChanged([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(null, new PropertyChangedEventArgs(name));
}
}
Hier ist mein XAML Und hier ist ein Bild, auf dem der Haltepunkt gefangen ist
Image

Die Befehle funktionieren, der Timer funktioniert, die NotifyPropertyChanged-Methode funktioniert ebenfalls (der Namensparameter ist ebenfalls korrekt), die Ansicht jedoch nicht Aktualisierung.
Wie kann ich das beheben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post