C# EpiServer 7.5如何使用类的自定义属性创建块

C# EpiServer 7.5如何使用类的自定义属性创建块,c#,asp.net-mvc,custom-component,episerver-7,C#,Asp.net Mvc,Custom Component,Episerver 7,我们需要为正在处理的项目创建自定义属性。我们正在创建一个共享块,它将显示一个图形 编辑器可以设置图表的标题和类型(图表、甜甜圈等),这些是普通的字符串属性。接下来,编辑器需要为图表的每个部分创建数据,例如,编辑器将为基本柱状图创建三列holidng数据 柱状图的每个部分都包含三个值,我们在一个名为GraphPartent value的类中管理这些属性;字符串颜色;字符串描述;我们想要创建的是一个自定义属性,用户可以轻松地创建任意数量的块图。与LinkItemCollection属性类似的东西可以

我们需要为正在处理的项目创建自定义属性。我们正在创建一个共享块,它将显示一个图形

编辑器可以设置图表的标题和类型(图表、甜甜圈等),这些是普通的字符串属性。接下来,编辑器需要为图表的每个部分创建数据,例如,编辑器将为基本柱状图创建三列holidng数据

柱状图的每个部分都包含三个值,我们在一个名为GraphPartent value的类中管理这些属性;字符串颜色;字符串描述;我们想要创建的是一个自定义属性,用户可以轻松地创建任意数量的块图。与LinkItemCollection属性类似的东西可以工作。最佳实践是什么,我们应该如何实现

欢迎提供所有建议和提示/指南。下面是代码示例

[ContentType(
    DisplayName = "Graf",
    Description = "Block med graf",
    AvailableInEditMode = true)]
[ImageUrl("~/Content/icons/block-type-graf-stapel.jpg")]
public class GraphBlock : BlockData
{
    [Display(
       Name = "Diagramtyp",
       Description = "Välj vilken diagramtyp som ",
       GroupName = SystemTabNames.Content,
       Order = 0)]
    [UIHint(SiteUIHints.GraphTypes)]
    public virtual string Typ { get; set; }

    [Display(
        Name = "Title",
        Description = "Beskrivande titel kan anges",
        GroupName = SystemTabNames.Content,
        Order = 1)]
    public virtual string MainTitle { get; set; }

    [Display(
        Name = "Diagrambitar",
        Description = "För varje bit av diagram måste en diagrambit med tre värden anges.",
        GroupName = SystemTabNames.Content,
        Order = 2)]
    public virtual IEnumerable<GraphParts> GraphParts { get; set; }
}

public class GraphPart
{
    public int Value { get; set; }
    public string Title { get; set; }
    public string Color { get; set; }
}
[ContentType(
DisplayName=“Graf”,
Description=“Block med graf”,
AvailableInEditMode=true)]
[ImageUrl(“~/Content/icons/block-type-graf-stapel.jpg”)]
公共类GraphBlock:BlockData
{
[显示(
Name=“Diagramtyp”,
Description=“Välj vilken diagramtyp som”,
GroupName=SystemTabNames.Content,
订单=0)]
[UIHint(siteuhints.GraphTypes)]
公共虚拟字符串类型{get;set;}
[显示(
Name=“Title”,
Description=“Beskrivande titel kan anges”,
GroupName=SystemTabNames.Content,
订单=1)]
公共虚拟字符串mainttitle{get;set;}
[显示(
Name=“Diagrambitar”,
Description=“För varje位av图måste en diagrambit med tre värden anges.”,
GroupName=SystemTabNames.Content,
订单=2)]
公共虚拟IEnumerable图形部件{get;set;}
}
公共类图形部件
{
公共int值{get;set;}
公共字符串标题{get;set;}
公共字符串颜色{get;set;}
}

遵循本教程找到满足我需要的解决方案: