public DetailControlLoader(DetailControl detailControl) : base(
         table => detailControl.DataTable = table,
         () => detailControl.DataTable, detailControl.RefreshDisplayAsync,
         func => detailControl.LoadNextBatchAsync        = func,
         () => detailControl.ToolStripButtonNext.Enabled = false,
         wrapper =>
 {
     detailControl.EndOfFile = () =>
                               wrapper?.EndOfFile ?? true;
     detailControl.SafeBeginInvoke(() =>
     {
         detailControl.ToolStripButtonNext.Visible = wrapper != null;
         detailControl.ToolStripButtonNext.Enabled = wrapper != null;
     });
 })
 {
 }