Tja, was da nicht so richtig tut gute Frage.
Einen Fehler habe ich aber schon entdeckt:
Delphi-Quellcode:
procedure TEventHandler.setPropertyChanged(const Value: TEvent);
begin
if @FPropertyChanged <> @Value then
begin
ShowMessage('setPropertyChanged');
FPropertyChanged := Value;
end;
end;
Du vergleichst hier
if @FPropertyChanged <> @Value then
die
Adresse der Methode. Das reicht aber nicht aus, denn bei unterschiedlichen Instanzen der gleichen Klasse ist diese Adresse
gleich!
Du musst das nach
TMethod casten und dann
TMethod.Code
und
TMethod.Data
vergleichen
Meine Erfahrung mit MVVM haben mir allerdings auch gezeigt, dass die normalen Delphi-(SingleCast)-Events da nicht ausreichen und ein MultiCast-Event zwingend erforderlich ist. Ein und dasselbe ViewModel kann an mehreren Views hängen (Liste und Detail) und da wäre es doof, wenn nur eine View aktualisiert wird.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)