Вы можете сделать это с внутренними свойствами:
[ParseChildren(ChildrenAsProperties = true)]
public partial class MyControl: UserControl
{
[PersistenceMode(PersistenceMode.InnerProperty)]
public TestClass TestLabel
{
get;set;
}
}
public class TestClass
{
public string Field1
{ get; set; }
public string Field2
{ get; set; }
}
Разметка:
<MyTag:MyControl runat="server">
<TestLabel Field1="a" Field2="b" />
</MyTag:MyControl>
Я никогда раньше не делал этого с простым свойством - обычно вы используете коллекции,Играя с этим примером самостоятельно, в окне разметки Visual Studio позволит вам создать более одного экземпляра TestLabel
внутри <MyTag:MyControl>
- то есть, похоже, его не волнует, что это простое свойство.я полагаю, что если вы добавите более одной записи, то получится только последняя.
К вашему сведению ... если вы еще этого не сделали, подготовьтесь к тому, что intellisense будет раздражать вас.Может быть раздражающе тупо обновлять поведение после внесения изменений в класс, вам нужно будет перекомпилировать и, вероятно, подождать некоторое произвольное количество времени, прежде чем он начнет действовать так, как он должен.