Periodic action
Hans Karlsen (talk | contribs) No edit summary |
Hans Karlsen (talk | contribs) No edit summary |
||
Line 9: | Line 9: | ||
* Updating a calculated value or transient collection/association that you show on screen. | * Updating a calculated value or transient collection/association that you show on screen. | ||
** If you want the persisted attribute A get assigned the derived attribute B you can do so with a periodicaction that starts whenever self.A<>self.B - set the Disabled expression to self.A=self.B (this way is does NOT run when A=B, only when A<>B), in the action expression you then assign B to A with the expression self.A:=self.B. Set Interval to a number X, and the disable expression will become false when B is updated and X milliseconds after B gets a new value the action will execute, and A will now become equal to B, and then the disable expression again is true, and the action rests. | ** If you want the persisted attribute A get assigned the derived attribute B you can do so with a periodicaction that starts whenever self.A<>self.B - set the Disabled expression to self.A=self.B (this way is does NOT run when A=B, only when A<>B), in the action expression you then assign B to A with the expression self.A:=self.B. Set Interval to a number X, and the disable expression will become false when B is updated and X milliseconds after B gets a new value the action will execute, and A will now become equal to B, and then the disable expression again is true, and the action rests. | ||
** The periodic action is a good way to detect changes that are not easily connected to user action - if you have a user entering a value and you want to do something upon apply you can also do this with a [[Derived settable attributes|reversederived]] attribute | |||
See also [[MDrivenServer periodic server-side actions]] which is a different thing, but usually works in conjuction with viewmodel periodic actions. | See also [[MDrivenServer periodic server-side actions]] which is a different thing, but usually works in conjuction with viewmodel periodic actions. | ||
[[Category:View Model]] | [[Category:View Model]] |
Revision as of 12:30, 24 April 2023
A periodic action is a viewmodel action that runs automatically over and over again until the Disabled expression is True.
In the viewmodel editor;
You typically use this for;
- Refreshing a view in WPF with selfVM.Refresh if for example your root object is in a state that changes server side.
- Automatically navigate on a change in the database (for example after login when a current user has ben set)
- Updating a calculated value or transient collection/association that you show on screen.
- If you want the persisted attribute A get assigned the derived attribute B you can do so with a periodicaction that starts whenever self.A<>self.B - set the Disabled expression to self.A=self.B (this way is does NOT run when A=B, only when A<>B), in the action expression you then assign B to A with the expression self.A:=self.B. Set Interval to a number X, and the disable expression will become false when B is updated and X milliseconds after B gets a new value the action will execute, and A will now become equal to B, and then the disable expression again is true, and the action rests.
- The periodic action is a good way to detect changes that are not easily connected to user action - if you have a user entering a value and you want to do something upon apply you can also do this with a reversederived attribute
See also MDrivenServer periodic server-side actions which is a different thing, but usually works in conjuction with viewmodel periodic actions.
This page was edited more than 8 months ago on 05/22/2024. What links here