Activity Relationships Validation
This topic applies to Windows Workflow Foundation 4 (WF4).
This sample consists of three activities, CreateCity
, CreateState
, and CreateCountry
. CreateCity
must be inside a CreateState
activity, and CreateState
must be inside a CreateCountry
activity. For the purpose of this sample, the validation logic is in code for the CreateState
activity, and in XAML for the CreateCity
activity. Both constraints have the same behavior.
The .NET Framework version 4 provides the following three helper activities that allow the developer to validate relationships between activities:
- GetParentChain
Provides the collection of all activities that belong to the parent of the current node
- GetChildSubtree
Provides the collection of all activities that belong to the sub-tree of the current node, excluding the current node
- GetWorkflowTree
Provides the collection of all activities in the same tree as the current node
In the sample, a ForEach activity is used to walk through the collection returned by GetParentChain. For every element in the collection, its type is compared to CreateCountry
(or CreateState
if CreateCity
is being validated), and when a match is found the result flag is set to true. Finally, an AssertValidation is used to generate a validation error if the result flag is set to false.
To use this sample
Open the ContainmentValidation.sln sample solution in Visual Studio 2010.
Build the solution.
Press CTRL + F5 to launch the program.
![]() |
---|
The samples may already be installed on your computer. Check for the following (default) directory before continuing:
<InstallDrive>:\WF_WCF_Samples
If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WF samples. This sample is located in the following directory:
<InstallDrive>:\WF_WCF_Samples\WF\Basic\Validation\ActivityRelationships
|