如何初始化复杂类型的自定义控件属性(属性)(struct \ class)

时间:2015-01-01 15:08:25

标签: c# asp.net initialization custom-controls

我在asp.net中有自定义控件 我的自定义控件有一个类型为Size的类成员(值类型为Width和Height内部成员)。 我想从.aspx文件初始化此成员。

理想的解决方案是(此行不会通过编译):

<CustomControl:MyCtrl runat="server" ID="MyCtrlID" MaxSize="{Width=200, Height=400}"/>

.cs文件中的代码:

public partial class MyCtrl: System.Web.UI.UserControl
{
    public System.Drawing.Size MaxSize { get; set;}

    // Class logic...
}

诅咒我可以通过向setter添加逻辑来解决这个问题(在c#代码中),如下所示:

private System.Drawing.Size m_MaxSize;
public string MaxSize 
{ 
    set 
    { 
        string[] sizes = value.Split(",");
        m_MaxSize.Width = sizes[0];
        m_MaxSize.Height = sizes[1];
    }
}

但我们是否有任何asp.net语法为我们做这个?,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

由于Size Structure使用SizeConverter Class转换和访问Size属性,以下示例演示了如何正确delcare MaxSize属性:

<CustomControl:MyCtrl runat="server" ID="MyCtrlID" MaxSize="200, 400"/>

关于类型转换器

类型转换器

  

提供了将值类型转换为其他类型的统一方法,   以及访问标准值和子属性。

ASP.NET在运行时使用类型转换器来序列化和反序列化以控制状态和视图状态存储的对象,请按Type Converter Example获取更多详细信息。