Возможно, у вас уже есть доступ к Customer
внутри CustomerViewModel
(VieModel необходимо предоставить свойства Customer
, чтобы View мог связать их с данными; я обычно делаю это, выставляя Customer
или копия этого непосредственно).
Дело в том, что вы не должны удалять Customer
самостоятельно. Вот для чего нужен ViewModel
, чтобы выставить ICommand
, который удаляет связанный Customer
. В зависимости от того, какую платформу MVVM вы используете, посмотрите DelegateCommand
или другой эквивалент.
Ваш CustomerViewModel
будет иметь
public ICommand DeleteCommand { get; private set; }
и ваш вид привязывает CommandTarget
(вероятно, Button
) к этой команде. Когда команда будет выполнена, будет запущен закрытый метод CustomerViewModel
, и вы можете удалить Customer
оттуда, не подвергая механизм удаления другим частям кода. Например:
public CustomerViewModel()
{
this.DeleteCommand = new DelegateCommand(this.ExecuteDeleteCommand);
}
private void ExecuteDeleteCommand()
{
// remove the Customer from the ObservableCollection of customers
// and also delete it from the database, or do anything else you want
}