Umgang mit WPF Editierbare combobox bei der Eingabe von text ist nicht ein Teil der datsource

Ich habe eine Combobox-Komponente in WPF habe ich Ist Editable="true", die ermöglicht es mir, geben Sie beliebigen text in die combobox. Ich möchte verhindern, dass Benutzer die Eingabe von text außerhalb datasource.

Xaml:

<ComboBox Name="service" Margin="0,0,0,4" 
    IsEditable="True"
    Grid.Column="1" 
    Grid.ColumnSpan="2" Grid.Row="4" 
    SelectedValuePath="Id" 
    DisplayMemberPath="Service" 
    SelectedValue="{Binding Controller.Service1}" 
    ItemsSource="{Binding}" />

C#:

System.Data.DataView vw = tableAdapterServices.GetData().DefaultView;
service.ItemsSource = vw;
service.SelectedIndex = 0;

Ich nicht zulassen möchten, dass Benutzer text eingeben, die nicht in der Datenquelle, oder Sie behandeln es, wenn der Benutzer einen anderen text.

Update:

Danke für die Lösung @Herby, LostFocus-Ereignis ist der Umgang mit diesem Thema, aber es gab Anlass zu einer weiteren Frage. Ich habe eine Schaltfläche, die zum Absenden der combobox-Wert zusammen mit anderen textbox-Werte an den server. Ich bin Einstellung default-Wert in der combobox im lostfocus-Ereignis. Aber ich muss verhindern, dass die Schaltfläche click-Ereignis, wenn einige anderen Wert, die datasource-Wert im Kombinationsfeld.

Sie können ändern Sie die enabled - /disabled-Status der Schaltfläche je nach SelectedIndex der combobox-Komponente. Ich aktualisiert meine Antwort mit den relevanten code.

InformationsquelleAutor Arti | 2014-07-24

Schreibe einen Kommentar