Из-за странного поведения в моем приложении, я вынужден перезагрузить конструктор перед вызовом WorkflowInvoker.Invoke на нем.WF 4 разных идентификатора в тех же действиях
wd.Flush();
SaveXamlFile(currentXamlPath, wd.Text);
Я просто очищаю содержимое и записываю файл wd.Text в файл.
//cleanup the previous designer
if (wd != null)
{
wd.ModelChanged -= new EventHandler(Designer_ModelChanged);
}
//designer
wd = new WorkflowDesigner();
designerArea.Child = wd.View;
this.DebuggerService = this.wd.DebugManagerView;
//property grid
propertiesArea.Child = wd.PropertyInspectorView;
//event handler
wd.ModelChanged += new EventHandler(Designer_ModelChanged);
//error service
wd.Context.Services.Publish<IValidationErrorService>(errorService);
wd.Context.Items.Subscribe<Selection>(OnItemSelected);
Затем я создаю новый экземпляр WorkflowDesigner и загружаю ранее сохраненный файл.
wd.Load(currentXamlPath);
я называю WorkflowInvoker.Invoke и внутри моей пользовательской активности, которая происходит от CodeActivity я беру это имя: ОК, штраф до сих пор, у меня есть 1.2 Id там.
Я хочу обновить некоторые поля этого действия через свой ModelItem, чтобы сразу отобразить их в графическом интерфейсе.
IEnumerable<ModelItem> activityCollection = currentWorkflow.Find(currentWorkflow.Root, typeof(Activity));
Но здесь встает вопрос:
Я не могу найти, что моя активность идентификатор там. Теперь он превращается из 1,2 в 2. Почему это происходит?
Я попытался отправить эту ссылку из моего метода Execute Activity и выполнил поиск по ref, но все, что я получил, это null.
ModelItem temp = activityCollection.FirstOrDefault((m) => (m.GetCurrentValue() == a));
Уверен, что у меня что-то отсутствует, но я не могу понять, что это.