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 procedure 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 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.

  6. Add the Category field, and set the allowed values to depend on the value of the Discipline field by adding the following XML:

    <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="Review" />
        </ALLOWEDVALUES>
      </WHENNOT>
    <DEFAULT from="value" value="Process Management" />
    </FIELD>
    

    Note

    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>, and <WHENCHANGED> 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="Review" />
        </ALLOWEDVALUES>
      </WHENNOT>
    <DEFAULT from="value" value="Process Management" />
    </FIELD>
    
  8. On the toolbar, click Save to save changes to Task.xml.

  9. Import the updated work item type.

    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.

  5. 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>, and <WHENCHANGED> Conditions