Auswahl des deaktivierten Combobox-Elements in wpf verbieten / blockieren

Ich schreibe eine Anwendung, in der ich einige Elemente im deaktivieren möchteComboBox und möchten auch die Auswahl von deaktivierten Elementen verbieten / blockieren. Bitte beachten Sie, dass die ComboBox im Hauptfenster eine andere ComboBox als ComboBox Item init hat (dies wird zur Laufzeit von der Datenvorlagenauswahl festgelegt).

Mit dem folgenden Code kann ich eine ComboBox in der ComboBox deaktivieren, aber es hindert den Benutzer nicht daran, das deaktivierte ComboBox-Element auszuwählen. Jede Hilfe bei der Auswahl von deaktivierten Elementen, die nicht erlaubt oder blockiert werden soll, wäre hilfreich.

Unten sind die Code-Schnipsel

ComboBox im Hauptfenster:

<Grid>
    <ComboBox HorizontalAlignment="Left" VerticalAlignment="Top" 
              Width="120" Margin="87.2,44.8,0,0" 
              ItemsSource="{Binding Cars}" 
              ItemsPanel="{DynamicResource ItemsPanelTemplateHorizontal}"
              ItemTemplateSelector="{StaticResource QualityComboBoxTemplateSelector}"
              SelectedItem="{Binding SelectedItm}"/>
</Grid>

Datenvorlagenauswahl:

public class QualityComboBoxTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        var element = container as FrameworkElement;

        var dataTemplate = element.FindResource(((item is string) && item.Equals("Ferrari")) ?
                                                       "DataTemplateTopLevelCombobox2" : "DataTemplateTopLevelCombobox1") as DataTemplate;

        return dataTemplate;
    }
}

Datenvorlagen für obige ComboBox:

<DataTemplate x:Key="DataTemplateTopLevelCombobox1">
    <Border BorderBrush="Black" BorderThickness="1" >
        <TextBlock HorizontalAlignment="Left" 
                   TextWrapping="Wrap" Text="{Binding}"     
                   VerticalAlignment="Top"/>
    </Border>
</DataTemplate>

<DataTemplate x:Key="DataTemplateTopLevelCombobox2">
    <Border Width="100">
        <ComboBox Text="Custom" Height="21.96"
        ItemsSource="{Binding DataContext.Models, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
        IsEnabled="{Binding DataContext.EnableCombo, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
    </Border>
</DataTemplate>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage