ThabetMicrosoft Ответов: 1

Обновить datagrid после удаления или добавления - MVVM WPF


Hello,

After deleting a line from my DataGrid, I have a problem to  Refresh the DataGrid,


Voici mon XAML:
<DataGrid x:Name="EmpDataGrid"

                       

                      ItemsSource="{Binding loadDataBinding,Mode=TwoWay}"                   

                      CanUserResizeRows="False"

                      CanUserAddRows="False"

                      SelectedItem="{Binding CurrentCustomer}" Grid.ColumnSpan="2">



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



И когда я нажимаю кнопку Удалить, Datagrid не обновляется !! и в моей базе данных это удалено

Как я исправлю эту ошибку?

Спасибо

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

<pre>private ObservableCollection<Custmor> _loadDataBinding;   
 
public ObservableCollection<Custmor> loadDataBinding
{
    get
    {
        return _loadDataBinding;
    }
    set
    {  _loadDataBinding = value;
        OnPropertyChanged("loadDataBinding");
    }
}
 
 
 public ViewModel1()
{
  //Affichage mon DataGrid
    using (Test1Entities context = new Test1Entities())
    {
        _loadDataBinding = new ObservableCollection<Custmor>(context.Custmor.ToList());
    }       
     
  deleteCustomer = new RelayCommand(delete, canexecute);   
}
 
private ICommand deleteCustomer;
public ICommand DeleteCustomer
{
    get { return deleteCustomer; }
}
 
 
private void delete(object obj)
{
 
    using (Test1Entities context = new Test1Entities())
    {          
        Custmor cus = context.Custmor.Find(currentCustomer.ID);
        context.Custmor.Remove(cus );
        context.SaveChanges();
    }
}
 
 
private Custmor currentCustomer;
 
public Custmor CurrentCustomer
{
    get { return currentCustomer; }
    set
    {
        currentCustomer = value;
        test = currentCustomer;
        OnPropertyChanged("CurrentCustomer");
    }
}
 
loadDataBinding.ToList();

Member 13981886

как добавить и удалить данные из datagrid. я добавил немного кода, но не удаляется в XML. я посвежее пожалуйста, помогите мне.

1 Ответов

Рейтинг:
5

jimmson

Вы удаляете элемент из базы данных, но не из коллекции, привязанной к вашей базе данных. DataGrid (_loadDataBinding). Вы можете сделать это в своем delete метод:

private void delete(object obj)
{
 
    using (Test1Entities context = new Test1Entities())
    {          
        Custmor cus = context.Custmor.Find(currentCustomer.ID);
        context.Custmor.Remove(cus );
        context.SaveChanges();
    }

    // remove item from collection
    _loadDataBinding.Remove(CurrentCustomer);

}


ThabetMicrosoft

Большое спасибо! теперь это правильно

Я пробую какое-то решение для добавления , но оно не работает: _loadDataBinding.Add (CurrentCustomer); ?

У вас есть другой совет для добавления, чтобы обновить DataGrid?

jimmson

Пожалуйста!

По поводу добавления-рекомендую вам отправить его как новый вопрос. Комментарии-не лучшее место для решения этой проблемы. Кроме того, включите свой код, чтобы увидеть, где вы застряли.

ThabetMicrosoft

очень ясный
еще раз спасибо за вашу помощь