WPF-Cuadro combinado-Agregar elemento cuando el usuario ingresa texto en combo
combobox observablecollection (1)
Enlace la propiedad Texto de su cuadro combinado a su elemento de modelo de vista y luego agréguelo a la colección encuadernada allí, como
Text="{Binding UserEnteredItem, UpdateSourceTrigger=LostFocus}"
Cambie el UpdateSourceTrigger a LostFocus porque el valor predeterminado (PropertyChanged) comunicará cada cambio de carácter a su viewmodel.
// user entered value
private string mUserEnteredItem;
public string UserEnteredItem {
get {
return mUserEnteredItem;
}
set {
if (mUserEnteredItem != value) {
mUserEnteredItem = value;
TypePLCList.Add (mUserEnteredItem);
// maybe you want to set the selected item to user entered value
TypePLC = mUserEnteredItem;
}
}
}
// your selected item
private string mTypePLC;
public string TypePLC {
get {
return mTypePLC;
}
set {
if (mTypePLC != value) {
mTypePLC = value;
// notify change of TypePLC INPC
}
}
}
// your itemsource
public ObservableCollection <string> TypePLCList { set; private set;}
Tengo un ComboBox
vinculado con un ObservableCollection
. ¿Cómo puedo hacer cuando el usuario ingresa un texto en el ComboBox
, si el elemento no está en la lista, el código agrega automáticamente un nuevo elemento a la lista?
<ComboBox Name="cbTypePLC"
Height="22"
ItemsSource="{StaticResource TypePLCList}"
SelectedItem="{Binding TypePLC}" IsReadOnly="False" IsEditable="True">
</ComboBox>