1

他の人のコントロールから、マークアップでサブオブジェクト プロパティを設定できることがわかります。たとえば、Telerik の RadComboBox を使用している場合、次のように記述できます...

<telerik:RadComboBox runat="server" ID="RadComboBox2">
    <CollapseAnimation Duration="100" />
</telerik:RadComboBox>

または、代わりに私が書くことができます...

<telerik:RadComboBox runat="server" ID="RadComboBox2" CollapseAnimation-Duration="100">
</telerik:RadComboBox>

私が書いたコントロールでこれを行うには、どのようなテクニックを採用する必要がありますか? 私は、公開するサブオブジェクトのプロパティごとに、親コントロールにプロパティを明示的に作成する必要があるかもしれないと考えました。ただし、名前に「-」を含むプロパティを作成することは許可されていないようです。

4

1 に答える 1

3

これを試して:

1 - プロパティ クラスの定義

public class Option
{
    public string First { get; set; }
    public string Last { get; set; }
}

2 - ユーザー コントロールの定義

public partial class CustomUC : System.Web.UI.UserControl
{
    //Enables the Option properties to be filled inside the control's tag
    [PersistenceMode(PersistenceMode.InnerProperty)] 
    //Enables the Option properties to be filled on the control's tag
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public Option Options
    {
        get;set;
    }

    protected void Page_Load(object sender, EventArgs e) { }
}

3 - マークアップ:

<own:CustomUC ID="uc" runat="server" Options-First="First" Options-Last="Last" />

また

<own:CustomUC ID="uc" runat="server" >
   <Options-First="First" Options-Last="Last" />
</own:CustomUC>

注: 最初に独自の tagPrefix を使用して usercontrol アセンブリを参照する必要があります。

于 2013-01-25T12:09:46.440 に答える