Witam.
- Po wpisaniu w combobox'a jakiegoś znaku zawsze zaznacza pierwszy znak, jak piszę dalej to pierwszy znak zostanie usunięty, jak to zmienić ?
Wpisując ciągiem "123" po kliknięciu 1 pojawia się i zaznacza, pisząc dalej 23 zostaje mi tylko "23" w combobox'ie. - Zrobiłem sobie tak że po wpisaniu każdego kolejnego znaku lista jest przepisywana problem w tym że jak kliknę strzałkę w dół zaznacza mi pierwszą dopasowaną wartość, chciał bym żeby działało to tak, że jak poruszam się po liście strzałkami to dopiero wywołanie klawisza enter wybiera daną wartość.
- Równocześnie chciał bym aby combobox wyświetlał mi datagrida z różnymi wartościami które będę mógł przeszukiwać. Jak to rozwiązać ?
Z góry dziękuję za pomoc.
Poniżej kod:
<ComboBox x:Name="cbFirma" IsEditable="True" IsTextSearchEnabled="False" IsSynchronizedWithCurrentItem="False" Width="90" SelectionChanged="cbFirma_SelectionChanged"/>
List<Firma> firmy = new List<Firma>();
Firma firma = new Firma();
firmy = firma.pobierzDane(false);
cbFirma.ItemsSource = firmy; // mapuje wszystkie wartości do combobox'a
cbFirma.DisplayMemberPath = "nazwa"; // mapuje wartości do combobox'a
cbFirma.SelectedValuePath = "id"; // mapuje id do combobox'a
cbFirma.AddHandler(System.Windows.Controls.Primitives.TextBoxBase.TextChangedEvent, new System.Windows.Controls.TextChangedEventHandler(cbFirma_TextChanged)); // Funkcja dodaje to comboboxa akcję po wpisaniu textu
private void cbFirma_TextChanged(object sender, TextChangedEventArgs e)
{
cbFirma.IsDropDownOpen = true;
List<Firma> results = firmy.FindAll(x => x.nazwa.ToUpperInvariant().Contains(cbFirma.Text.ToUpperInvariant()));
cbFirma.ItemsSource = results; // mapuje wyszukane wartości do combobox'a
}
private void cbFirma_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cbFirma.SelectedItem != null)
{
Firma drv = (Firma)cbFirma.SelectedItem;
lfirma.Content = drv.nazwa;
}
else lfirma.Content = "";
}
Jedna zależność jaką zauważyłem to że jeśli combobox jest ustawiony na iseditable="false"
to przyciski dół góra działają prawidłowo. Sęk w tym że jak ustawię wartość na True to chciał bym aby przyciski zachowywały się tak jak myszka czyli tylko podświetlały wartość a po przyciśnięciu enter'a wartość została wybrana.