Hi everyone, i'n learning c#, currently using wpf and databinding, i've created the models and view model:
public class MedidasViewModel : ObservableObject
{
public ObservableCollection<Medida> _medidas;
public ObservableCollection<Medida> Medidas
{
get { return _medidas; }
set { _medidas = value; }
}
public MedidasViewModel()
{
_medidas = new ObservableCollection<Medida>();
using (AppDbContext context = new AppDbContext())
{
List<Medida> lista = context.Medida.ToList();
foreach (var item in lista)
{
_medidas.Add(item);
}
}
}
}
<syncfusion:ComboBoxAdv x:Name="cmbMedida" FontSize="18" Grid.Column="1" Grid.Row="4" MinWidth="300" Height="25" ItemsSource="{Binding MedidasView.Medidas,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Sigla" SelectedValuePath="Sigla" />
When i load the window, it get all the data, but when i add a new medida into the database, my combobox doesn't update.
public partial class NovaMedida : ObservableObject
{
[ObservableProperty]
[NotifyPropertyChangedFor(nameof(DescricaoNovaMedida))]
string descricaoN;
[ObservableProperty]
[NotifyPropertyChangedFor(nameof(SiglaNovaMedida))]
string siglaN;
[ObservableProperty]
[NotifyPropertyChangedFor(nameof(ConvervorNovaMedida))]
decimal conversorN;
public string DescricaoNovaMedida => descricaoN;
public string SiglaNovaMedida => siglaN;
public double ConvervorNovaMedida => Convert.ToDouble(conversorN);
[RelayCommand]
void SalvarNovaMedida()
{
Medida medida = new Medida();
medida.Descricao = DescricaoNovaMedida;
medida.Sigla = SiglaNovaMedida;
medida.Conversor = Convert.ToDecimal(ConvervorNovaMedida);
using (var context = new AppDbContext())
{
context.Medida.Add(medida);
context.SaveChanges();
}
}
}
I've googled for days i coun't find a solution