public void SetFlag(string flag, bool value)
        {
            if (value)
            {
                if (_flags == null)
                {
                    _flags = new CaseInsensitiveStringKeyDictionary <string>();
                }

                if (!_flags.ContainsKey(flag))
                {
                    _flags[flag] = flag;
                    Table.HandleColumnFlagged(this, flag, true);
                }
            }
            else if (_flags != null)
            {
                if (_flags.ContainsKey(flag))
                {
                    _flags.Remove(flag);
                    Table.HandleColumnFlagged(this, flag, false);
                }

                if (_flags.Count == 0)
                {
                    _flags = null;
                }
            }
        }