2010-03-31 3 views
3

디자이너가 리 호스팅하는 샘플을 사용하고 있으며 도구 상자에 제네릭 형식을 넣으려고하지만 작동하지 않을 수 있습니다.워크 플로 재 호스팅 4 디자이너가 도구 상자에 foreach 작업을 추가하는 중

은 내가 XAML을 시도했습니다 기반 :

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

코드 기반 :

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); 

그들 중 어느 것도 제대로 작동하지만. 어떤 제안?

답변

5

작동하지 않는 것은 제외하고 있지만 디자이너에서 ForEach에 하위 작업을 추가 할 수 없다고 가정합니다.

Body 속성이 Activity가 아닌 ActivityAction이고 초기화해야하기 때문입니다. 이렇게하는 방법은 여러 가지가 있지만 가장 쉬운 방법은 디자이너에서 ForEachWithBodyFactory을 시작하여 대신 디자인 화면으로 드래그하는 것입니다.

다음 코드는 저에게 적합합니다. ForEach를 워크 플로우로 드래그하고 하위 항목을 추가 할 수 있습니다. 나는 일반 활동의 유형을 얻을 때 나는 ForEachWithBodyFactory를 사용하는 경우 동일 적용 (이것은 일반적인 내가이 일반 유형을 지정하고 있지 않다 때문에)

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

, 그것은 나에게 널 유형을 제공합니다. – gbanfill

+1

응답에 추가 한 코드 샘플을 참조하십시오. – Maurice