2012-02-14 13 views
3

DelegateCommandをオフにして、その時点で選択されたアイテムを実際に削除するには、Deleteキーのキーを押したいと思います。Delete List SelectedItem on Keypress

これを行うには正しい構文を見つけるのに困っています。私はViewModel上のパブリックプロットにバインドするためにINotifyPropertyChanged実装を使用しています。

これを行う方法はありますか?そこにあるべきであるように思われる。

私はあなたがで機能「を命令するイベント」を使用することができ、各オブジェクトのフィールド(すなわち、名前、住所)任意のヘルプ

答えて

8

キープレスから火にコマンドを取得するには:あなたのViewModelでプロパティを持って、あなたの選択した項目については

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

をし、それにListViewコントロールのSelectedItemのをバインドします。

+0

これはそれでした。ありがとう.... – DavieDave

0

ため

おかげで言うことができます

ObservableCollection<Object> Objects 

を持っていますMVVMライトツールキットこれを使用すると、keydownイベントを、選択したアイテムのインデックスをパラメータとしてViewModelで起動するコマンドに設定できます。 ViewModel内で、observablecollectionがListViewの権利に接続されていると仮定すると、インデックスに基づいて選択したアイテムをコレクションから削除できます。 listviewのitemsプロパティのupdatesourcetriggerが "property changed"に設定されていることを確認してください。