2010-04-26 3 views
1

갖고있는 활동에 대한 사용자 지정 활동 디자이너를 추가하려고합니다. . 제가 활동 디자이너를 넣어하려고사용자 지정 활동 디자이너의 작업 인수에 바인딩 출력

public class WaitForUserInputActvitiy : NativeActivity 
{ 
    public InArgument<UserInteractionProperty[]> UserInteraction { get; set; } 
} 

이 조금 더 좋은이 값을 (그래서 당신이 직접에서 VB를 입력 끝나지 않는 내 디자이너가 설정할 수 있도록 : 활동은 좀처럼 보이는 MindScape을 속성 그리드를 기반으로. 나는의 값을 얻고 InArgument에에 넣어하려는 ObservableDictionary 소스를 가지고있다. 현재 내가

private void TestGrid_LostFocus(object sender, RoutedEventArgs e) 
{ 
    using (ModelEditingScope editingScope = this.ModelItem.BeginEdit()) 
    { 
     Argument myArg = Argument.Create(typeof(WaitForUserInputActvitiy), ArgumentDirection.In); 
     this.ModelItem.Properties["UserInteraction"].SetValue(source.Values.ToArray()); 

     editingScope.Complete(); 
    } 
} 

그러나이는 경우 ArgumentException에서 형 UserInteractionProperty의 [의 "개체 결과를 사용하고 있습니다 ]를 InArgument`1 [UserInteractionProperty []]로 변환 할 수 없습니다.

그래서 내 배열의 UserInteractionProperties를 InArgument로 변환 할 수 있습니까?

답변

1

여기에 답이 조금 늦었습니다. UserInteraction을 사용하는 코드를 작성할 때 어디에서 가져올 수 없으므로 이미 버그를 발견했다고 생각합니다.

따라서 속성은 this.ModelItem.Properties["UserInteraction"]이고,이 값을 UserInteractionProperty[]으로 설정하려고하면 문제가 발생합니다. InArgument<UserInteractionProperty[]>은 다른 워크 플로 요소에서 UserInteractionProperty의 목록을 제공하려는 경우 사용할 유형입니다. 그것은 그런 경우가 아닌 것처럼 보입니다 - 당신이 당신의 재산을 단지 UserInteractionProperty[]으로 선언하고 싶다고 생각합니다.

public class WaitForUserInputActvitiy : NativeActivity 
{ 
    public UserInteractionProperty[] UserInteraction { get; set; } 
} 

그러나 더 좋기 때문에 Collection<UserInteractionProperty>으로 신고하는 것이 좋습니다.

관련 문제