Well, the answer to this one is pretty easy and straight-forward. You can accomplish that using a check-in policy. For example, to force users to link check-ins to work items that are not closed, you may do the following:
- Add a Team Query to the desired project, call it “Not Closed” and specify the condition State <> Closed
- Right click the team project > Team Project Settings > Source Control > Check-in Policy > Add, then scroll down to choose “Work Item Query Policy”, click OK
- In the “Choose Your Query” dialog, choose “Not Closed” and click OK
Now, after you added this check-in policy, the user should link the changeset to a work item of the “Not Closed” query or provide a policy-override reason.