2017-05-22 13 views
0

ボタンが追加されています。私がクリックすると、新しいウィンドウが開きます。新しい顧客を追加すると、データグリッドが更新されますが、初めてのことです! ボタン追加をクリックするたびに、同じ情報を持つ新しいウィンドウが表示されます。多くのウィンドウが表示されます。多くのウィンドウが表示されます。ボタンADD -MVVM WPF

のViewModel:

 private ObservableCollection<Custmor> _loadDataBinding;  
    public ObservableCollection<Custmor> loadDataBinding 
    { 
     get 
     { 
      return _loadDataBinding; 
     } 
     set 
     { 
      _loadDataBinding = value; 
      OnPropertyChanged("loadDataBinding"); 
     } 
    } 


    public ViewModel1() 
    { 
      //Display my DataGrid 
     using (Test1Entities context = new Test1Entities()) 
     { 
      _loadDataBinding = new ObservableCollection<Custmor>(context.Custmor.ToList()); 
     } 

     //To Show the Window ADD from Window MainWindow 
     addCustomerMainWindow = new RelayCommand(add, canexecute);   


     CustomerToAddObject = new Custmor(); 


     addCustomer1 = new RelayCommand(ADDFunction);  
    } 



    //To Show the Window ADD from Window MainWindow 
    private ICommand addCustomerMainWindow; 
    public ICommand AddCustomerMainWindow 
    { 
     get { return addCustomerMainWindow; } 
    } 

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

    //The Button ADD from Window ADD 
    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!");     
     }   

     _loadDataBinding.Add(CustomerToAddObject); 
    }  



    //textBox for window ADD: CustomerToAddObject.nom ;CustomerToAddObject.prenom and CustomerToAddObject.reference 
    private Custmor customerToAddObject; 

    public Custmor CustomerToAddObject 
    { 
     get { return customerToAddObject; } 
     set { customerToAddObject = value; } 
    } 

どのように私は私が顧客を追加するときのためにそれを修正することができ、ウィンドウADDが閉じ、メインウィンドウまだように更新と?ボタンADDをクリックすると、何度も新しい顧客が追加されます。私のエラーの

結果:あなたの助けを enter image description here

おかげで、

答えて

1

追加ウィンドウへの参照を格納して、このいずれかを使用して、それを閉じることができます。このようなもの:

private Add addView; 
private void add(object obj) 

    if (addView != null) 
     addView.Close(); 

    addView = new Add(); 
    addView.DataContext = this; 
    addView.Show(); 
} 

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); 

    if (addView != null) 
     addView.Close(); 
    CustomerToAddObject = new Custmor(); 
} 
+0

あなたはGeniusです! ありがとうございました! 正解です。本当にありがとうございます – devtunis

関連する問題