Die Komponente wird nach dem StateHasChanged-Aufruf nicht gerendertC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Die Komponente wird nach dem StateHasChanged-Aufruf nicht gerendert

Post by Anonymous »

Ich komme aus einem WPF-Hintergrund, in dem man normalerweise nur an eine Eigenschaft bindet, die die Ansicht aktualisiert, und möchte die Informationen in einer Komponente aktualisieren, wenn ich neue Daten habe.
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
  • Code: Select all

    CarPropertyChanged
    heißt
  • Code: Select all

    StateHasChanged
    heißt
  • Die Eigenschaft des viewModel wird aufgerufen und gibt den neuen Wert zurück
Allerdings wird die Benutzeroberfläche nicht aktualisiert
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());
}

}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post