2016-06-30 3 views
0

Ich habe versucht, Auto-Vervollständigen-Funktionalität in C# mit SUBSTRING-Suchvorgänge auf viele Arten zu verwenden. Immer mit dem gleichen Problem. Meine Logik zurückkehrt das Recht auf Information gesetzt, jedes Mal, aber ich bin nicht in der Lage, um sie anzuzeigen pünktlichSo verwenden Sie die Methodensammlung geändert von Auto abgeschlossen

Wie Typisierung (verfügbar Drop-down in Echtzeit zu verändern) ‚A‘ füllt den Dropdown mit

Adeel Nazir 
Abdul Muqeet 
Aun Abbas 

Dann lösche ich 'A' und schreibe 'N' neu. Mein Code wird dann ausgeführt und liefert

Adeel Nazir 
Aun Abbas 

aber mein Dropdown ist nicht aktualisiert.

Ich versuchte erfrischend Textfeld und viele andere Möglichkeiten ..

Anmerkung: Ich Funktionen auch anstelle der laufenden Abfrage jedes Mal verwendet String zu suchen. Das Hauptproblem besteht jedoch darin, das Drop-Down-Menü jedes Mal zu aktualisieren.

private void key_up(object sender, KeyEventArgs e) 
{ 
    mycollection.Clear(); // autocompletecustomsource 
    this.hostName.Refresh(); 

    using (SqlConnection con = new SqlConnection(Connection.con)) 
    { 
     string cmd = " select hFirst+' '+hLast as Name from Hosts where hFirst+' '+hLast like '%" + this.hostName.Text + "%'"; 
     con.Open(); 

     using (command = new SqlCommand(cmd, con)) 
     { 
      reader = command.ExecuteReader(); 

      while (reader.Read()) 
      { 
       mycollection.Add(reader["Name"].ToString()); 
      } 

      hostName.AutoCompleteCustomSource = mycollection; 
     } 

     con.Close(); 
    } 
} 

Schnitt:

nun nach viel Forschung, die ich an einem Punkt angelangt, dass wir unsere Sammlung Sammlungen geändert Methode bearbeiten können (Standard zur Verfügung gestellt), aber jetzt kann ich nicht eine einfache Möglichkeit, herauszufinden, zu verwenden, es. Unten ist mein neuer Code, ausgeführt unter key_up Event. Bitte führe mich ein wenig darüber, wie man die Methode der automatischen Vervollständigung bei der Sammlung ändern kann.

Neuer Code:

private void key_up(object sender, KeyEventArgs e) 
 
{ 
 
    mycollection.CollectionChanged+= mycollection.Add("abcd"); 
 
}

+0

Können Sie auch Ihre XAML posten? Zumindest der Teil, der TextBox und DropDown enthält – Athafoud

+0

gibt es keine Dropdown-Liste. Das Textfeld zeigt das Drop-down-Menü an, wenn jemand eingibt. Verwenden der benutzerdefinierten Quelle für die automatische Vervollständigung. Okay, ich poste die XAML (durch Bearbeiten der Post) –

+0

Wie bekomme ich XAML-Code in Windows Form Visual Studio Ultimate 2013? –

Antwort

1

Gut aus dieser ganzen Verwirrung. Ich habe einen einfachen Ausweg gefunden.
Löschen Sie die Autovervollständigung jedes Mal und fügen Sie neue Elemente hinzu. Einfachste und schnell genug

//autocomplete.clear(); autocomplete.add ("Name");

Verwandte Themen