better usage of property binding

Fixed some bad binding implementations for VirtualKeyCode and CmdType,
and implemented INotifyPropertyChanged so UI auto-updates based on
dependency properties.