public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
{
if (content == null)
{
return;
}
IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));
if (host != null)
{
string[] parameters = region.Name.Split('_');
if (parameters.Length == 3 && parameters[0] == "Body")
{
BorderLayoutRegion layoutRegion = GetLayoutRegionByName(parameters[1]);
if (layoutRegion != null && layoutRegion.Items.Count > 0)
{
IContent contentPanel = null;
int activeIndex = int.Parse(parameters[2]);
if (layoutRegion.Items[0] is Panel)
{
contentPanel = layoutRegion.Items[0] as Panel;
}
else if (layoutRegion.Items[0] is TabPanel)
{
TabPanel tabPanel = layoutRegion.Items[0] as TabPanel;
if (activeIndex < tabPanel.Items.Count)
{
contentPanel = tabPanel.Items[activeIndex] as IContent;
}
}
if (contentPanel == null)
{
return;
}
ITemplate template = ControlParser.ParseTemplate(host, content);
TypeDescriptor.GetProperties(contentPanel)["Body"].SetValue(
contentPanel, template);
contentPanel.Content = template;
this.Tag.SetDirty(true);
}
}
}
}