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)); }
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)); }