I would initially set the editbox enabled property to false.
Once the selection changes in the combo, either through binding or via capturing the selectionchanged event you can enable the editbox.
This does not yet imply any validation but it should give a visual clue to the user he is supposed to fill in the edit box.
Then in the ok button handler you can actually create the validation by just coding it.
This is the most simple approach, if you use the model view viewmodel approach there are other methods to do this.
An example of more complex binding :
<Style x:Key="NonEmptyTextBlock" TargetType="TextBlock">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True"/>
<Condition Binding="{Binding AF}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Collapsed"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
The first trigger makes sure that if the textblock,where this style is applied on, is empty, then it is collapsed.
The second trigger is more complex and uses 2 conditions. The first condition is that the listboxitem where this textblock resides in must be selected, the second condition is that the condition AF must be false, this is a variable in my viewmodel. Binding can be a little complex but there are plenty of tutorials and books to teach this.