2010-03-31 2 views
3

J'utilise les exemples de réhébergement de concepteur et j'essaie de placer les types génériques dans la boîte à outils, mais je n'arrive pas à le faire fonctionner.Workflow de réhébergement 4 Le concepteur ajoute l'activité foreach à la boîte à outils

J'ai essayé XAML basé:

<sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}"> 
    <sapt:ToolboxItemWrapper.ToolName> 
     System.Activities.Statements.ForEach 
    </sapt:ToolboxItemWrapper.ToolName> 
</sapt:ToolboxItemWrapper> 

et code basé:

Type t = Type.GetType("System.Activities.Statements.Foreach, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); 
ToolboxItemWrapper w = new ToolboxItemWrapper(t); 
category.Add(w); 

mais aucun d'entre eux semblent fonctionner. Aucune suggestion?

Répondre

5

Vous omettez ce qui ne fonctionne pas mais je suppose que vous ne pouvez pas ajouter une activité enfant à ForEach dans le concepteur.

Si tel est le cas, c'est que la propriété Body est une ActivityAction et non une activité et qu'elle doit être initialisée. Il y a plusieurs façons de le faire mais le plus simple est de commencer avec le ForEachWithBodyFactory dans le concepteur et de le faire glisser sur la surface de conception à la place.

Le code suivant fonctionne pour moi. Je peux faire glisser le ForEach sur un workflow et y ajouter des éléments enfants.

var cat = new ToolboxCategory("Standard Activities"); 
cat.Add(new ToolboxItemWrapper(typeof(ForEachWithBodyFactory<>))); 
+0

Quand je reçois le type de l'activité générique, il me donne un type nul (car il est générique et je ne suis pas le type générique précisant) de même si j'utilise le ForEachWithBodyFactory. – gbanfill

+1

Voir l'exemple de code que j'ai ajouté à la réponse. – Maurice

Questions connexes