5 messaggi dal 04 luglio 2006
Salve a tutti.

Sto scrivendo un controllo che eredita da DataBoundControl e sto cercando anche creare un custom designer che eredita da DataBoundControlDesigner.
Quello che vorrei fare è aggiungere una "voce" (ovvero uno SmartTag) al pannello che si apre normalmente sul DataBoundControlDesigner.
Il codice che riporto sotto, l'ho scritto basandomi sulle informazioni recuperate da MSDN. Con questo codice, viene effettivamente aggiunto uno SmartTag ("Genera Colonne"), ma il designer perde le sue funzionalità di base.
Qualcuno ha mai fatto una cosa del genere e sa dirmi dov'è l'inghippo?

Grazie,
Max Cocco

public class igcGridViewDesigner:DataBoundControlDesigner
{

public igcGridViewDesigner():base()
{

}

private DesignerActionListCollection _actionLists;
public override DesignerActionListCollection ActionLists
{
get
{
if (_actionLists==null)
{
_actionLists=new DesignerActionListCollection();
_actionLists.Add(new igcDataGridAutoGenerateColumnAction(this.Component));
}
return _actionLists;
}
}

}

public class igcDataGridAutoGenerateColumnAction : System.ComponentModel.Design.DesignerActionList
{
private igcDataGrid _myGrid;

public igcDataGridAutoGenerateColumnAction( IComponent component ) : base(component)
{
this._myGrid = component as igcDataGrid;
}

private void RefreshColumnSchema()
{
_myGrid.GenerateColumns();
}

public override DesignerActionItemCollection GetSortedActionItems()
{
DesignerActionItemCollection items = new DesignerActionItemCollection();

items.Add(new DesignerActionMethodItem(this,
"RefreshColumnSchema", "Genera Colonne",
"Appearance",
"Rigenera le colonne.",
true));
return items;
}
}

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.