internal virtual CellStyle GetDataCellStyle(T valueObject)
        {
            IDictionary <string, object> data = DictionaryUtils.ConvertFrom(valueObject);
            object value = string.IsNullOrWhiteSpace(DataKey) ? null : data[DataKey];

            return(ItemStyleFunctor is null ? ItemStyle : ItemStyleFunctor(value, valueObject));
        }
Example #2
0
        private void Validate()
        {
            if (Columns.Count > 0)
            {
                if (DataSource is null)
                {
                    throw new NullReferenceException("未指定資料來源。");
                }

                if (DataSource.Count() == 0)
                {
                    return;
                }

                IDictionary <string, object> firstData = DictionaryUtils.ConvertFrom(DataSource.First());

                foreach (DataColumn <T> col in Columns.DataSourceColumns)
                {
                    if (!string.IsNullOrWhiteSpace(col.DataKey) && !firstData.ContainsKey(col.DataKey))
                    {
                        throw new ArgumentException($"資料來源未包含Property「{col.DataKey}」。");
                    }
                }
            }
        }
        internal virtual object GetContentValue(T valueObject)
        {
            IDictionary <string, object> data = DictionaryUtils.ConvertFrom(valueObject);

            if (string.IsNullOrWhiteSpace(DataKey))
            {
                return(ContentRender is null ? "" : ContentRender(null, valueObject));
            }
            object value = data[DataKey];

            return(ContentRender is null ? value : ContentRender(value, valueObject));
        }