Как я правильно понимаю, вы хотите добавить элемент и выбрать его.Вот пример того, как это можно сделать с помощью ViewModel и привязок.
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
имеет 3 свойства (один для TextBox
и два других для ComboBox
) и метод AddNewItem
без параметров.
Метод может быть вызван из команды, но стандартного класса для команд нет, поэтому я назову его из кода:
((MainViewModel)this.DataContext).AddNewItem();
Так что вы должны явно установитьдобавленный элемент, выбранный после добавления его в коллекцию.
Поскольку метод OnItemsChanged
класса ComboBox
защищен и не может использоваться.