Yes, I know there are many ways to achieve my purpose.
I'm saying that TDataSource.Enabled is designed to that purpose, and it should be implemented because other things may depend on the TDataSource as well, not only enabling/disabling controls. For example, I may write some codes within TDataSource.OnChange event, and sometimes I do not want these to be executed. Yes, I can write TDataSource.OnChange := nil, but TDataSource.Enabled must be enabled.
I tested following line with a small Delphi program, which exactly does what I expect.
datasource1.Enabled := not datasource1.Enabled;