カスタムコントロールにプロパティを設定する方法

 カスタムコントロールにプロパティを設定するには、このプロパティが、接続するクライアント毎に状態管理する必要があるかないかで設定方法が異なります。
 接続するクライアント毎に状態管理する必要がある場合は、その値を ViewState に格納する必要があります。また、状態管理する必要がない場合は、ローカル変数に保存すれば十分です。
【使い方】

例1:接続するクライアント毎に現在の値が異なる場合。(現在のページ番号を示すプロパティ)
/// <summary>
///  PageNumberプロパティは現在のページを取得または設定します。
/// </summary>
[Description("現在のページです。")]
public int PageNumber
{
    get
    {
        object obj = this.ViewState["PageNumber"];
        if ( obj == null )
            return 1;        // 既定値です。
        else
            return (int)obj;
    }
    set {this.ViewState["PageNumber"] = value;}

例2:接続する全てのクライアントで値が等しい場合。(表示文字列の水平方向の配置を示すプロパティ)
/// <summary>
///  TextBoxの表示文字列の水平方向の配置を取得または設定します。
/// </summary>
[Description("TextBoxの表示文字列の水平方向の配置を取得または設定します。")]
public HorizontalAlign HorizontalAlign
{
    get {return m_HorizontalAlign;}
    set {m_HorizontalAlign = value;}
}
【注意】
 不用意に ViewState にデータを格納すると、自動的にクライアントとのデータのやりとりが発生するため、パフォーマンスのオーバーヘッドを発生させます。状態管理の必要のない場合は、 ViewState にデータを格納しないことが望ましい。
戻る