Flood control like dikes is unsightly and only serve to create a system that goes against the natural river condition, possibly even compounding problems elsewhere (as the Mississipi dikes have shown).
Rather, I think houses should be able to ride out flooding without significant damage, like the stilt houses above. In fact, the stilt houses are really overkill- just a couple of feet higher should probably suffice for most houses in affected areas in Canada. This can be done over time through municipal and provincial laws, and selective insurance coverage. The overall goal would be to minimize damage, not avert it completely.
The other option is to move people away from floodplains through buyouts, expropriations and limiting payouts (like what Quebec is doing). Toronto did that after Hurricane Hazel, thankfully enough. This option is tougher to do, considering the value North Americans place on their properties.