1

所有しているアクティビティにカスタム アクティビティ デザイナーを追加しようとしています。アクティビティは次のようになります。

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

これらの値を設定しやすくするために、アクティビティにデザイナーを配置しようとしています (したがって、VB を直接入力することはありません。私のデザイナーはマインドスケープ プロパティ グリッドに基づいています。必要な ObservableDictionary ソースがあります。から値を取得して InArgument に入れます。現在、私は使用しています

 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 に変換するにはどうすればよいでしょうか?

4

1 に答える 1

1

ここでの回答は少し遅れています。バグをすでに見つけてUserInteractionいるのではないかと思います。

したがって、問題はプロパティをthis.ModelItem.Properties["UserInteraction"]モデル化しInArgument<UserInteractionProperty[]>ており、値を設定しようとしていることですUserInteractionProperty[]InArgument<UserInteractionProperty[]>他のワークフロー要素で のリストを提供する場合に使用するタイプですUserInteractionProperty。ただし、そうではないようです-プロパティを単なる..として宣言したかったのではないかと思いますUserInteractionProperty[]

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

ただし、それはより良いので、と宣言することをお勧めしCollection<UserInteractionProperty>ます。

于 2011-01-30T16:57:57.213 に答える