Is this a single value check box (check it and it's a vendor, clear the check box and it's not) ?
If so, you can define a calculation field:
If ( checkbox = "Vendor" ; ContactID ; "" )
Use this calculation field as the source of values for your value list.
If the check box field contains multiple values, then you'd need to use FilterValues to check to see if "Vendor" has been selected.
Awesome, thanks so much!