Задать вопрос
@AndNovak

Как удалить выделенную строку в datagrid?

Подскажите , пожалуйста, как удалить выделенную строчку в dataGrid использовав ViewModel. Удаление должно происходить по нажатию кнопки.
Данные к dataGird биндятся так
<DataGrid  x:Name="products"  CanUserDeleteRows="False" 
                           AutoGenerateColumns="False" VerticalAlignment="Top" Margin="22,0,0,0" 
                           Height="300">


products получаю во ViewModel
public BindableCollection<Product> products { get; private set;}
        public MainViewModel()
        {
            db = new Context();
            products = new BindableCollection<Product>(db.Product);       
        }


На сколько я понял мне необходимо создать команду с использованием интерфейса ICommand и добавить ее во View, но как это реализовать я пока не понимаю.
  • Вопрос задан
  • 631 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@tex0
В модели у вас должны быть свойства:
-коллекция элементов(Items, у вас это products)
-текущий выделенный элемент (CurrentSelectedItem)
-команда для удаления (DeleteRowCommand . Самая простая реализация интерфейса ICommand вам думаю подойдёт, пример найдёте сами, благо их полно на просторах этих ваших интернетов)

там же в модели запиливаете метод удаления выделенного элемента
public void DeleteCurrentSelected()
{
    if (CurrentSelectedItem != null)
        Items.Remove(CurrentSelectedItem);
}

инициализируете команду (экшеном, выполняющим вашу функцию удаления) прям в конструкторе модели (для вашей задачи думаю норм)

привязываете к DataGrid вот таким образом
привязываете команду к кнопке удаления вот так:
<Button Command="{Binding DeleteRowCommand }" />

UPD:
судя по всему вы начинающий, поэтому советую вам получше изучить тему привязок в WPF
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы