The databinding mechanism built in the .NET Framework looks for one of two events:
1. A PropertyChanged event from a class that implements INotifyPropertyChanged, or
2. For a property named XyZ, an XyZChanged event where case is important.
Since your event was called usernameChanged, it did not update when property Username was changed. Either change your property name or the name of the event.
Tony