I'm working on a basic MSI installshield project in installshield 2016. I've an edit field and text area on my wizard step. The text area is actually an error label. Visible property of the text area control is initially set to false.
After putting some input into the edit field user presses Next > button on the wizard step. We perform some validations on the user input and then set a private property IsUserInputValid to 1 if the user input was valid. Initial value of IsUserInputValid property is 0. Value of HasValidationRun flag is 0.
Now in the behavior section I've added an event to show the edit text area control as below:
HasValidationsRun = 1 AND IsUserInputValid=0
After I click Next > button the error label doesn't show up. But if I change the input which passes the validations then wizard moves to the next step and just before the transition happens that label becomes visible for a second. I don't know why did the UI didn't refresh on its own if I've defined the condition for Show event properly.

You need to add a SetProperty Control Event that sets the property to the new value. This tells the UI to update conditions that reference the changed property (or text including the changed property, etc.). Windows Installer doesn't monitor other means of changing the property. See my related answers: