As I understand it correctly, you want to add an item and select it. Here is an example of how this can be done using ViewModel and bindings.
Xaml:
<StackPanel> <TextBox Text="{Binding ItemToAdd}"/> <ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" /> <Button Content="Add" Click="Button_Click"/> </StackPanel>
ViewModel:
public class MainViewModel:INotifyPropertyChanged { public ObservableCollection<string> Items { get; set; } public string ItemToAdd { get; set; } private string selectedItem; public string SelectedItem { get { return selectedItem; } set { selectedItem = value; OnPropertyChanged("SelectedItem"); } } public void AddNewItem() { this.Items.Add(this.ItemToAdd); this.SelectedItem = this.ItemToAdd; } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }
MainViewModel has 3 properties (one for TextBox and two others for ComboBox ) and AddNewItem method without parameters.
The method can be launched from a command, but there is no standard class for commands, so I will call it from the code:
((MainViewModel)this.DataContext).AddNewItem();
Thus, you must explicitly indicate the added item selected after adding it to the collection.
Because the OnItemsChanged method of the ComboBox class is protected and cannot be used.
vorrtex
source share