[]
单元格类型插件的父类定义。
[Icon("pack://application:,,,/Forguncy;component/Images/DefaultCellTypeIcon.png")]
public abstract class CellType : INotifyPropertyChanged
public class MyPluginCellType : CellType
{
...
}
单元格类型插件的父类定义。
protected CellType()
public class MyPluginCellType : CellType
{
...
}
是否支持设置Tab键顺序。
public bool AllowSetTabOrder { get; }
类型 | 描述 |
---|---|
bool |
设置单元格的显示文本关联到某个属性的值上,如默认值属性。 如果修改了某个单元格属性的值后希望能应用到单元格本身,则需要指定该属性名。
public virtual string CellTextPropertyName { get; }
类型 | 描述 |
---|---|
string |
public class MyNumberCellType : CellType
{
[FormulaProperty]
public object DefaultNumberValue { get; set; }
public override string CellTextPropertyName
{
get
{
return "DefaultNumberValue";
}
}
}
单元格类型插件的默认水平对齐方式。
public virtual ForguncyCellHorizontalAlignment DefaultAlignment { get; }
类型 | 描述 |
---|---|
ForguncyCellHorizontalAlignment |
public class MyNumberCellType : CellType
{
public override ForguncyCellHorizontalAlignment DefaultAlignment
{
/*return ForguncyCellHorizontalAlignment.General; //默认对齐方式*/
return ForguncyCellHorizontalAlignment.Right;
}
}
禁用Tab键顺序。
[Browsable(false)]
public bool DisableTabOrder { get; set; }
类型 | 描述 |
---|---|
bool |
单元格类型的显示行为。 如果指定显示行为是DisplayBehaviour.KeepBorderWhenMerge,那么默认生成的单元格类型会带边框,而且Border会随着单元格的合并或取消合并自适应边框的大小。
public virtual DisplayBehaviour DisplayBehaviour { get; }
类型 | 描述 |
---|---|
DisplayBehaviour |
public class MyNumberCellType : CellType
{
public override DisplayBehaviour DisplayBehaviour
{
/*return DisplayBehaviour.None; //默认没有特殊行为。*/
return DisplayBehaviour.KeepBorderWhenMerge; /*插件自带边框。*/
}
}
用于判断单元格缓存状态
public string RenderCacheId { get; }
类型 | 描述 |
---|---|
string |
支持的特性,如设置单元格格式,Tab键设置等。
public virtual SupportFeatures SupportFeatures { get; }
类型 | 描述 |
---|---|
SupportFeatures |
public class MyNumberCellType : CellType
{
public override SupportFeatures SupportFeatures
{
/*return SupportFeatures.None; //默认没有特性。*/
return SupportFeatures.AllowSetFormat; /*插件支持单元格格式设置。*/
}
}
Tab键顺序。
[Browsable(false)]
public int? TabIndex { get; set; }
类型 | 描述 |
---|---|
int? |
Value值是否支持多语言
public virtual bool ValueSupportMultipleLanguage { get; }
类型 | 描述 |
---|---|
bool |
克隆方法。
public CellType Clone()
类型 | 描述 |
---|---|
CellType | 克隆后的插件对象。 |
克隆方法。 如果单元格类型中有自定义复杂类型的属性,该复杂类型就需要实现ICloneable接口,否则会导致复杂类型的数据无法保存。
protected virtual CellType CloneImp()
类型 | 描述 |
---|---|
CellType | 克隆后的插件对象。 |
public class MenuCellType : CellType
{
public List<MenuItemInfo> MenuItems { get; set; }
}
public class MenuItemInfo : ICloneable
{
public object Value { get; set; }
public string Text { get; set; }
public List<MenuItemInfo> SubMenuItems { get; set; }
/*here need implement this method.*/
public object Clone()
{
/*处理>*/
}
}
获取应用资源。
public Dictionary<string, string> GetApplicationResource()
类型 | 描述 |
---|---|
System.Collections.Generic.Dictionary<TKey, TValue><string, string> | 返回应用资源。 |
获取应用资源。
public string GetApplicationResource(string name)
类型 | 名称 | 描述 |
---|---|---|
string | name | 资源名,以‘~’开头 |
类型 | 描述 |
---|---|
string | 返回应用资源。 |
获取单元格属性的值从而设值给单元格。
public virtual void GetCellValue(out object value, out string formula)
类型 | 名称 | 描述 |
---|---|---|
object | value | 返回属性的值 |
string | formula | 返回属性的格式 |
如果需要动态改变属性编辑器的可见性,可以重写该函数。
public virtual bool GetDesignerPropertyVisible(string propertyName)
类型 | 名称 | 描述 |
---|---|---|
string | propertyName | 属性名 |
类型 | 描述 |
---|---|
bool | 返回True表示属性编辑器可见,否则不可见。 |
public class MenuCellType: CellType
{
public Orientation Orientation { get; set; }
public ExpandStyle DefaultExpandStyle { get; set; }
public override bool GetDesignerPropertyVisible(string propertyName)
{
if (propertyName == "DefaultExpandStyle")
{
if (Orientation == MenuOrientation.Horizontal) //如果是水平方向的菜单隐藏默认展开方式。
{
return false;
}
return true;
}
return base.GetDesignerPropertyVisible(propertyName);
}
}
获取资源化后的显示文本,通常需要在使用自定义资源文件时重写。
public virtual string GetDisplayString(string str)
类型 | 名称 | 描述 |
---|---|---|
string | str |
类型 | 描述 |
---|---|
string |
获取在“导出文档”时,要显示在文档里的属性。
public virtual List<Tuple<string, object>> GetDocProperties(PageScope pageScope, ListViewScope listViewScope, LanguageScope languageScope)
类型 | 名称 | 描述 |
---|---|---|
PageScope | pageScope | |
ListViewScope | listViewScope | |
GrapeCity.Forguncy.CellTypes.LanguageScope | languageScope |
类型 | 描述 |
---|---|
System.Collections.Generic.List<T><Tuple<string, object>> |
获取插件资源。
public string GetPluginResource(string name)
类型 | 名称 | 描述 |
---|---|---|
string | name | 资源名 |
类型 | 描述 |
---|---|
string | 返回插件资源。 |
单元格类型插件的父类定义。
public virtual bool GetRunTimeMethodVisible(string name)
类型 | 名称 | 描述 |
---|---|---|
string | name |
类型 | 描述 |
---|---|
bool |
当属性变更时发出通知。
public virtual void OnPropertyChanged(string propertyName = null)
类型 | 名称 | 描述 |
---|---|---|
string | propertyName | 发生变更的属性名称。 |
刷新RenderCacheId
public void RenewRenderCacheId()
通过单元格本身的值设值给单元格属性。
public virtual void SetCellValue(object value, string text, bool haveFormula, IForguncyFormatter formatter)
类型 | 名称 | 描述 |
---|---|---|
object | value | 单元格的值 |
string | text | 单元格的文本 |
bool | haveFormula | 单元格是否有公式 |
IForguncyFormatter | formatter | 单元格的格式 |
单元格类型的显示名。 如果不指定,默认与类型名一致。
public override string ToString()
类型 | 描述 |
---|---|
string |
public class MyPluginCellType : CellType
{
public override string ToString()
{
/*return this.GetType().Name; //默认*/
return "我的插件";
}
}
内部使用。
public event PropertyChangedEventHandler PropertyChanged
类型 | 描述 |
---|---|
System.ComponentModel.PropertyChangedEventHandler |