2016-01-13 1 views
1

Я только что перешел от стандартного WinForm к WPF, я добавил в свою программу combo box, но хочу добавить функцию добавления и алфавитный порядок в поле со списком. В рамках стандартного проекта VB я могу просто перейти под свойствами поля со списком, но когда дело доходит до WPF, я не могу его найти, я беру на себя обоснованное предположение и говорю, что мне нужно его программировать. Мой вопрос заключается в том, как достичь этого Цель?Добавление функции добавления в WPF Combobox

+2

Как вы определили свой combobox? – ChrisF

+2

Возможный дубликат [Сортировка combobox исключительно в XAML] (http://stackoverflow.com/questions/2274690/sorting-a-combobox-purely-in-xaml) –

+0

Извинения, я не думаю, что правильно это сформулировал, все Я хочу сделать, когда пользователь нажмет на поле со списком, он покажет мой список, но он будет в алфавитном порядке, и когда вы введете в поле со списком, он будет прогнозировать результат, который вы хотите, например, начать писать Unit и прогнозировать весь результат, начиная с Unit , В настоящее время в любой стандартной программе VB вы можете войти в свойства поля со списком и просто добавить эти функции. – Gaudreau95

ответ

1

Вы должны использовать ObservableCollection:

Dim source = New ObservableCollection(Of String) 
source.Add("item 1") 
source.Add("item 2") 
source.Add("item 3") 
source.Add("item 4") 
comboBox1.ItemsSource = source 

И каждый раз, когда вы хотите добавить что-то вы должны добавить его в коллекцию замещать.

EDIT

, если вы хотите, чтобы ваш список, чтобы быть в алфавитном порядке сортируются один possibe способ заключается в использовании простой список

Dim source = New List(Of String) 
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs) 


    source.Add("item 1") 
    source.Add("item 2") 
    source.Add("item 4") 
    source.Add("item 3") 

    source.Sort() 

    'the combobox can autocomplete the user typing 
    comboBox1.IsEditable = True 
    comboBox1.IsTextSearchEnabled = True 

    comboBox1.ItemsSource = source 
End Sub 

и на событие нажатия кнопки вы код должен быть следующим

If (txt.Text <> "") Then 
     source.Add(txt.Text) 
     source.Sort() 
     txt.Text = "" 
     comboBox1.ItemsSource = Nothing 

     comboBox1.ItemsSource = source 
    End If 

надеюсь, что это может помочь

+0

Извините, я не думаю, что правильно сформулировал это, все, что я хочу сделать, - это когда пользователь нажимает на поле со списком, он будет показывать мой список, но он будет в алфавитном порядке, и когда вы введете в поле со списком, он будет прогнозировать результат хотите, например, начать писать Unit и прогнозировать все результаты, начиная с Unit. В настоящее время в любой стандартной программе VB вы можете войти в свойства поля со списком и просто добавить эти функции. – Gaudreau95

+0

Я обновил ответ, попробуйте проверить его и сообщить мне, что это было полезно –

Смежные вопросы