ThabetMicrosoft Ответов: 1

Обновление модели ViewModel в MVVM в WPF DataGrid с ФИС


Привет,

У меня есть MainWindow и Window Add, ViewModel и ViewModelADD..l'addition нового клиента корректен в базе данных, но обновления DataGrid нет ! и когда я заканчиваю l'addition, окно ADD не закрывается !

модель представления:

ViewModelADD:

Как я могу это исправить?
чтобы добавить нового клиента..и обновить DataGrid, а когда клиент добавлен..окно добавить закрыть

Спасибо,

Что я уже пробовал:

<pre>private static ViewModel1 instance = new ViewModel1();
        public static ViewModel1 Instance { get { return instance; } }
		
		
		    private void add(object obj)
        {
			Add addView = new Add();
            addView.DataContext = new ViewModelADD(loadDataBinding);
            addView.Show();
		}
		
		 private ObservableCollection<Custmor> _loadDataBinding;     

        public ObservableCollection<Custmor> loadDataBinding
        {
            get
            {
                return _loadDataBinding;
            }

            set
            {
                _loadDataBinding = value;
                OnPropertyChanged("loadDataBinding");
            }
        }

<pre> public ViewModelADD(ObservableCollection<Custmor> loadDataBinding)
        {
            CustomerToAddObject = new Custmor();

            addCustomer1 = new RelayCommand(ADDFunction);
        }
		
		
		 private ICommand addCustomer1;      
          public ICommand AddCustomer1
        {
            get { return addCustomer1; }
        }

       
        private void ADDFunction(object obj)
        {
            using (Test1Entities context = new Test1Entities())
            {
                context.Custmor.Add(customerToAddObject);
                context.SaveChanges();
                MessageBox.Show("Customer a été ajouté avec succès!");
            }

            ViewModel1.Instance.loadDataBinding.Add(customerToAddObject);

1 Ответов

Рейтинг:
12

ThabetMicrosoft

I found the solution,
first I modify the ViewModel:

private void add(object obj)
        {        
            Add addView = new Add();
            addView.DataContext = new ViewModelADD(addView,loadDataBinding);
            addView.Show();
        }

then i modify the ViewModelADD:


<pre> private readonly Window _window;       
        private readonly ObservableCollection<Custmor> _loadDataBinding;
		
		 public ViewModelADD(Window window,ObservableCollection<Custmor> loadDataBinding)
        {
            CustomerToAddObject = new Custmor();

            addCustomer1 = new RelayCommand(ADDFunction);
            _window = window;
            _loadDataBinding = loadDataBinding;
        }
		
		
		   private void ADDFunction(object obj)
        {
            using (Test1Entities context = new Test1Entities())
            {
                context.Custmor.Add(customerToAddObject);
                context.SaveChanges();
                MessageBox.Show("Customer a été ajouté avec succès!");
            }
                                
            _loadDataBinding.Add(customerToAddObject);
            _window.Close();           
        }



It works correct now,