How to: Create a Dependent Pick List

You can create a dependent pick list to use with a work item type field by exporting the XML file and modifying its content. As soon as you have added the dependent pick list, you can import the XML file to start to use the updated work item type.

The following example tells you how to create a dependent pick list for the Task work item type.

Required Permissions

To perform this procedure you must be a member of the Team Foundation Administrators group or a member of the Project Administrators group for the project. For more information, see Team Foundation Server Permissions.

To create a dependent pick list

  1. If you are modifying a work item type on a single project, run witexport to export the Task.xml. For more information, see How to: Export a Work Item Type from an Existing Project.

  2. In Visual Studio, click File, click Open, and then click File.

    This displays the Open File dialog box.

  3. Under Look in, move to the location where you exported the file.

    If you are modifying a work item type to customize a process template, move to the location where you downloaded the process template.

    Note

    If you are running Windows Vista, you might not have access rights to certain folders. If you try to export the work item type to a location where you do not have access rights, the registry virtualization technology automatically redirects the exported file and saves it to the virtual store. For more information, see https://go.microsoft.com/fwlink/?LinkId=92325 and https://go.microsoft.com/fwlink/?LinkId=92323. To avoid this redirection, you can export the file to a location where you have access rights.

  4. Select Task.xml, and then click Open. When you are prompted about line endings, click No.

  5. Find the <FIELDS> section of the XML file. Within this section is the Category field.

  6. Set the allowed values for the field you want to modify to depend on the value of the Discipline field by adding the following rules, as shown highlighted in the following example:

    <FIELD name="My Field" refname="MyCompany.MyProcess.MyField" type="String" reportable="dimension">
      <WHEN field="Microsoft.VSTS.Common.Discipline" value="Requirements">
        <ALLOWEDVALUES>
          <LISTITEM value="Planning" />
          <LISTITEM value="Review" />
        </ALLOWEDVALUES>
      </WHEN>
      <WHENNOT field="Microsoft.VSTS.Common.Discipline" value="Requirements">
        <ALLOWEDVALUES>
          <LISTITEM value="Process Management" />
          <LISTITEM value="Planning" />
          <LISTITEM value="Execution" />
          <LISTITEM value="Review" />
        </ALLOWEDVALUES>
      </WHENNOT>
    <DEFAULT from="value" value="Execution" />
    </FIELD>
    

    Tip

    The WHEN and WHENNOT rules used in this example can be applied also to other rules to specify when those rules should be evaluated. For more information, see Using the <WHEN>, <WHENNOT>, <WHENCHANGED>, and <WHENNOTCHANGED> Conditions.

  7. From this field, delete the DEFAULT rule shown highlighted in the following XML. You can delete it because the allowed values for the field now depend on the Discipline field.

    <FIELD name="My Field" refname="MyCompany.MyProcess.MyField" type="String" reportable="dimension">
      <WHEN field="Microsoft.VSTS.Common.Discipline" value="Requirements">
        <ALLOWEDVALUES>
          <LISTITEM value="Planning" />
          <LISTITEM value="Review" />
        </ALLOWEDVALUES>
      </WHEN>
      <WHENNOT field="Microsoft.VSTS.Common.Discipline" value="Requirements">
        <ALLOWEDVALUES>
          <LISTITEM value="Process Management" />
          <LISTITEM value="Planning" />
          <LISTITEM value="Execution" />
          <LISTITEM value="Review" />
        </ALLOWEDVALUES>
      </WHENNOT>
    <DEFAULT from="value" value="Execution" />
    </FIELD>
    
  8. On the toolbar, click Save to save changes to Task.xml.

  9. To import the new work item type to a single project, see How to: Import a Work Item Type to an Existing Project. To add the work item type to your process template, see Work Item Types.

To verify changes imported to a single project

  1. In Team Explorer, click Refresh to download the latest updates from the server.

    These updates include the changes that you just imported. Wait several seconds until the Work Items node is loaded. Nodes that are still loading are labeled working.

  2. Create a new task work item. To do this, right-click the Work Items node, point to Add Work Item, and then click Task.

    This task is created from the work item type that you changed and imported.

  3. Select the modified field to see its values.

  4. Select Requirements in the Discipline field, and then select the modified field to see how its values change.

Click Close to close the new task. Click No when you are prompted to save the task.

See Also

Tasks

How to: Create a Pick List
How to: Set a Default Value
How to: Make a String Field Match a Pattern
How to: Customize the Assigned to Field

Concepts

Using the <WHEN>, <WHENNOT>, <WHENCHANGED>, and <WHENNOTCHANGED> Conditions