public virtual void ReloadFromQuery ()
        {
            var enumerator = Query.Rows;
            if (enumerator == null) return;

            var oldRows = Rows;
            Rows = new QueryEnumerator(enumerator);

            var evt = WillReload;
            if (evt != null)
            {
                var args = new ReloadEventArgs(Query);
                evt(this, args);
            }

            var reloadEvt = Reload;
            if (reloadEvt != null) {
                var args = new ReloadEventArgs(Query, oldRows);
                reloadEvt(this, args);
            } else {
                TableView.ReloadData();
            }
        }