IsAsync=True
was the source of the problem. Without it controls are not being re-created. I am not sure what's going on behind the scenes though.
The help (https://learn.microsoft.com/en-us/dotnet/api/system.windows.data.binding.isasync?view=windowsdesktop-9.0) says "Use the IsAsync property when the get accessor of your binding source property might take a long time."