Удалить ListView SelectedItem на нажатие клавиши - PullRequest
3 голосов
/ 14 февраля 2012

Я хотел бы, чтобы клавиша «Delete» была нажата, чтобы запустить DelegateCommand для фактического удаления выбранного элемента в этой точке.

У меня проблемы с поиском правильного синтаксиса для этого.Я использую реализацию INotifyPropertyChanged для привязки к общедоступным свойствам на моей ViewModel.

Есть ли способ сделать это?Похоже, что должно быть.

У меня есть

ObservableCollection<Object> Objects

Допустим, с полями в каждом объекте (т.е. имя, адрес)

Спасибо за любую помощь

Ответы [ 2 ]

8 голосов
/ 14 февраля 2012

Чтобы получить команду для запуска от нажатия клавиши:

   <ListView ItemsSource="{Binding Path=Objects}" SelectedItem="{Binding Path=SelectedObject}">
        <ListView.InputBindings>
            <KeyBinding Key="Delete" Command="{Binding Path=MyCommand}"></KeyBinding>
        </ListView.InputBindings>
   </ListView>

Для выбранного элемента, укажите свойство в вашей viewModel и привяжите к нему выбранный элемент ListView.

0 голосов
/ 14 февраля 2012

Вы можете использовать функцию 'event to command' в MVVM Light Toolkit.Используя это, вы можете установить событие keydown для команды, которая запускается в вашей ViewModel, вместе с индексом выбранного элемента в качестве вашего параметра.В вашей ViewModel, предполагая, что ваша наблюдаемая коллекция подключена к вашему праву ListView, вы можете затем удалить выбранный элемент из коллекции на основе индекса.Убедитесь, что для параметра updateourcetrigger в свойстве items списка просмотра установлено значение «свойство изменено».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...