Ich habe also eine Elementansicht, die an das ViewModel gebunden ist und aktualisiert wird, wenn das Modell aktualisiert wird.
Dann dachte ich, es sollte einen „statehaschanged“ aufrufen, damit über das Viewmodel auf die Modelldaten zugegriffen werden kann. Aber es wird nie aktualisiert.
Ich habe Folgendes überprüft und verifiziert:
- Das Ereignis wird ausgelöst
- heißt
Code: Select all
CarPropertyChanged - heißt
Code: Select all
StateHasChanged - Die Eigenschaft des viewModel wird aufgerufen und gibt den neuen Wert zurück
Weiß jemand, was der Grund dafür sein könnte?
Code: Select all
@foreach (var car in CarVMs)
{
}
@code
{ [Parameter] public List CarVMs { get; set; }
Session currentlyDisplayedSession;
protected override void OnInitialized()
{
CarVMs = new List();
currentlyDisplayedSession = SessionManager.GetInstance().GetCurrentSession();
foreach (var car in currentlyDisplayedSession.Cars)
{
CarVMs.Add(new CarViewModel(car));
}
currentlyDisplayedSession = SessionManager.GetInstance().GetCurrentSession();
}
}
Code: Select all
@CarVM.TimeStamp
@code {
[Parameter] public CarViewModel CarVM { get; set; }
protected override void OnInitialized()
{
CarVM.GetCar().PropertyChanged += CarOnPropertyChanged;
}
private async void CarOnPropertyChanged(object? sender, PropertyChangedEventArgs e)
{
await InvokeAsync(() => StateHasChanged());
}
}
Mobile version