Voglio mettere un pulsante "Elimina" e un pulsante "Annulla" su ogni riga di un elenco di clienti. Il pulsante "Annulla" è disabilitato quando un cliente è "Invariato". Ma quando un cliente passa a uno stato modificato ("Aggiunto", "Modificato", "Cancellato"), voglio abilitare il pulsante "Annulla" in modo che l'utente possa invertire le modifiche - qualunque esse siano - prima di salvare.Come posso rilevare una modifica a EntityState di un'entità?
Posso quasi farlo iscrivendomi allo customer.entityAspect.propertyChanged
. Un cambio di proprietà segnala un potenziale cambiamento nel EntityState
. Posso iscrivermi a quell'evento e far aggiornare il gestore uno isChanged
osservabile che ho aggiunto alle entità del mio cliente. Poi lego il pulsante "Annulla" abilitato allo isChanged
e sono a posto.
Ma l'evento propertyChanged
viene generato solo quando un proprietà dei dati cambiamenti, per esempio, customer.Name("New Co.");
. Non viene generato quando l'utente fa clic sul pulsante "Elimina". I trigger "Elimina" customer.entityAspect.setDelete();
che non toccano una proprietà dati; cambia semplicemente il numero EntityState
del cliente.
(1) Perché non un cambiamento di EntityState
rilancio del cliente propertyChanged
e (2) come posso ascoltare per una modifica al EntityState
in modo da poter controllare il pulsante "Annulla"?
P.S .: Sto utilizzando Knockout.
P.P.S: questa domanda è stata ispirata da una precedente domanda SO "entityAspect.setDeleted doesn't fire the subscribed propertyChanged event".
C'è un biglietto possiamo guardare per vedere come questa funzionalità progredisce? La mia squadra lo troverebbe molto utile se Breeze lo gestisse. –
Non siamo inclini ad aggiungere questo alla proprietàChangedEvent. In linea di principio, si tratta di una modifica a una proprietà dell'oggetto business, non a una proprietà dell'infrastruttura dell'entità. Desideriamo inoltre incoraggiare le persone a utilizzare l'evento EntityManager.entityChange che ha meno probabilità di generare collegamenti di memoria. La rete di esso: improbabile che cambi il comportamento dell'evento propertyChanged. – Ward
Grazie per questa risposta @ward! –