Генерирование контролов из XML
Код:
<NewDataSet>
<OrganizationProperties>
<OrganizationID>2118</OrganizationID>
<FieldName>XMLTemplate</FieldName>
<FieldValue>
<billers Col1Name="Key" Col2Name="Value">
<MethodsList>
<Method Name="строка вызова" type="Concatenate" ReadOnly="true" FieldName="@GMProp" Delimiter=""/>
</MethodsList>
<FieldsList>
<Field label="ServiceId" Visible="false" Value="4"/>
<Field label="@Prop" Visible="false" Value="msisdn=38" MethodName="строка вызова"/>
<Field label="Телефон" Type="Целое число" IsObligatory="true" Value="050" MethodName="строка вызова" Stored="F1" Long="10"/>
<Field label="ФИО" Type="ФИО" Stored="F2"/>
<Field label="@GMProp" ReadOnly="true" Visible="false"/>
<Field label="Сумма пополнения" Type="Дробное число" IsObligatory="true" Summable="true" Long="10,2"/>
<Field label="@доп" ReadOnly="true" Visible="false" Value="; " MethodName="строка вызова"/>
</FieldsList>
</billers>
</FieldValue>
<FieldOwner>true</FieldOwner>
</OrganizationProperties>
</NewDataSet>
<OrganizationProperties>
<OrganizationID>2118</OrganizationID>
<FieldName>XMLTemplate</FieldName>
<FieldValue>
<billers Col1Name="Key" Col2Name="Value">
<MethodsList>
<Method Name="строка вызова" type="Concatenate" ReadOnly="true" FieldName="@GMProp" Delimiter=""/>
</MethodsList>
<FieldsList>
<Field label="ServiceId" Visible="false" Value="4"/>
<Field label="@Prop" Visible="false" Value="msisdn=38" MethodName="строка вызова"/>
<Field label="Телефон" Type="Целое число" IsObligatory="true" Value="050" MethodName="строка вызова" Stored="F1" Long="10"/>
<Field label="ФИО" Type="ФИО" Stored="F2"/>
<Field label="@GMProp" ReadOnly="true" Visible="false"/>
<Field label="Сумма пополнения" Type="Дробное число" IsObligatory="true" Summable="true" Long="10,2"/>
<Field label="@доп" ReadOnly="true" Visible="false" Value="; " MethodName="строка вызова"/>
</FieldsList>
</billers>
</FieldValue>
<FieldOwner>true</FieldOwner>
</OrganizationProperties>
</NewDataSet>
Код:
<Field label="Телефон" Type="Целое число" IsObligatory="true" Value="050" MethodName="строка вызова" Stored="F1" Long="10"/>
Должен бить TextBox с именем "Телефон", Text должен быть "050" и не превышать 10 симфолов.
и
Код:
<Field label="Сумма пополнения" Type="Дробное число" IsObligatory="true" Summable="true" Long="10,2"/>
Тоже TextBox с именем "Сумма пополнения"
Вопрос :
Есть ли какие-то паресеры, или как можно правильно сделать реализацию такого задания?
Спасибо.
Код:
public class FieldValue
{
}
public class billers
{
}
public class MethodList : IList<Method>
{
}
{
}
public class billers
{
}
public class MethodList : IList<Method>
{
}
Получив модели вам нужно динамически создавать контролы и привязывать их к делегатам событий на форму.
Псевдокод примерно такой
Код:
Form.Controls.Add(new ComboBox { Name = "Name", Items = new List<Item> { ... } });
А стандартные парсеры .NET чем не подошли? Форму можно конструировать динамически, добавляя контролы по ходу парсинга.