public object this[string nickName]
        {
            get
            {
                TkDebug.AssertArgumentNullOrEmpty(nickName, "nickName", this);

                FieldValueProviderName name = nickName.Value <FieldValueProviderName>();
                if (fColumns != null)
                {
                    if (fColumns.Contains(name.NickName))
                    {
                        return(Row[name.NickName]);
                    }
                    else if (name.IsDecoder && fColumns.Contains(name.SourceName))
                    {
                        return(Row[name.SourceName]);
                    }
                }
                return(DBNull.Value);
            }
        }
        public object this[string nickName]
        {
            get
            {
                TkDebug.AssertArgumentNullOrEmpty(nickName, "nickName", this);

                if (Container == null)
                {
                    return(null);
                }

                FieldValueProviderName name = nickName.Value <FieldValueProviderName>();
                if (name.IsDecoder)
                {
                    return(Container.Decoder.GetNameString(name.SourceName));
                }
                else
                {
                    return(MemberValue(nickName, Container.MainObject));
                }
            }
        }