Привязка вывода конструктора Custom Activity к аргументу Activity - PullRequest
1 голос
/ 26 апреля 2010

Я пытаюсь добавить настраиваемый конструктор активности для своей деятельности. Деятельность выглядит примерно так:

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

Я пытаюсь создать конструктор для действия, чтобы сделать эти значения более приятными (чтобы вы не вводили VB напрямую. Мой конструктор основан на сетке свойств mindscape. У меня есть источник 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?

1 Ответ

1 голос
/ 30 января 2011

Я немного опоздал с ответом здесь, и я подозреваю, что вы уже нашли свою ошибку, потому что, когда вы попытаетесь написать код, использующий UserInteraction, у вас не будет места, где их получить.

Таким образом, проблема в том, что this.ModelItem.Properties["UserInteraction"] моделирует свойство InArgument<UserInteractionProperty[]>, и вы пытаетесь установить для него значение, равное UserInteractionProperty[]. InArgument<UserInteractionProperty[]> - это тип, используемый, если вы хотите, чтобы какой-то другой элемент рабочего процесса предоставил список UserInteractionProperty с. Похоже, что это не тот случай - я подозреваю, что вы хотели объявить вашу собственность просто UserInteractionProperty[].

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

Однако я бы посоветовал объявить его как Collection<UserInteractionProperty>, поскольку это лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...