Привет! Я создаю рабочий процесс с C # WWF 4.0, и у меня возникают некоторые проблемы:
Мой тестовый код:
Flowchart flow = new Flowchart
{
DisplayName = "Test",
StartNode = new FlowSwitch<String> { Expression = "[prop1]" },
Variables = { new Variable<String> { Name = "prop1" } },
};
FlowNode MySwitch = flow.StartNode;
flow.Nodes.Add(MySwitch);
Я сохраняю его:
StreamWriter sw = File.CreateText(@"../../test.xaml");
var xmlWriter = XmlWriter.Create(sw,
new XmlWriterSettings { Indent = true, OmitXmlDeclaration = false });
using (xmlWriter)
{
var xamlXmlWriter = new XamlXmlWriter(xmlWriter, new XamlSchemaContext());
using (xamlXmlWriter)
{
XamlWriter xamlWriter = ActivityXamlServices.CreateBuilderWriter(xamlXmlWriter);
using (xamlWriter)
{
var activityBuilder = new ActivityBuilder { Name = "Test", Implementation = Workflow };
XamlServices.Save(xamlWriter, activityBuilder);
}
}
}
sw.Close();
и затем я получаю этот XAML:
<?xml version="1.0" encoding="utf-8"?>
<Activity x:Class="Test" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Flowchart DisplayName="Test">
<Flowchart.Variables>
<Variable x:TypeArguments="x:String" Name="prop1" />
</Flowchart.Variables>
<Flowchart.StartNode>
<x:Reference>__ReferenceID0</x:Reference>
</Flowchart.StartNode>
<FlowSwitch x:TypeArguments="x:String" x:Name="__ReferenceID0" Expression="[prop1]" />
</Flowchart>
</Activity>
, и когда я загружаю его в Visual Studio, я получаю этот рабочий процесс:
Iдумаю, что это неправильно, потому что дуга, начинающаяся с узла «Пуск», должна находиться под рамкой, а не над ней!
Если я добавлю другие шаги, они все соединятся, используя только положение over.
Что яя делаю не так?