1

リストビューがあり、ビューモデルに配置された ObservableCollection にバインドされた itemsSource プロパティです。そして、ビュー上のボタンは、リストビューで選択されたアイテムをobservableCollectionからボタンが削除するようにするにはどうすればよいですか?

4

3 に答える 3

5

それを行う別の方法を追加するだけです:

<ListView ItemsSource="{Binding MyList}"             
          SelectedItem="{Binding SelectedItem}"/>

<Button Command="{Binding DeleteCommand}"/>

ViewModel にはSelectedItem、 で選択を変更するたびに更新されるというプロパティがありListViewます。

これで、削除をViewModel簡単に処理できます。

internal class ViewModel
{
    public ViewModel()
    {
        this.DeleteCommand = new RelayCommand(() => this.Delete());
    }
    public void Delete()
    {
        this.MyList.Remove(this.SelectedItem);
    }
} 

詳細については、こちらをご覧くださいRelayCommand

于 2012-11-05T07:59:32.307 に答える
3

これを行うには多くの方法があります。RelayCommand1 つの方法は、またはDelegateCommandパラメータを使用して を作成することです。

<Button Command="{Binding MyDeleteCommand}" 
        CommandParameter="{Binding ElementName=mylistview, Path=SelectedItem}"/>

AlSkiが投稿した方法で、をバインドしSelectedItemて、ViewModelパラメーターなしでコマンドを処理できますViewModel

于 2012-11-05T07:44:12.310 に答える
1

2 番目のプロパティをリスト ビューの選択された項目にバインドし、3 番目のプロパティをビュー モデルの Command にバインドします。これにより、選択された項目が項目のリストから単純に削除されます。

http://msdn.microsoft.com/en-us/magazine/dd419663.aspxを参照してください。

于 2012-11-04T09:40:35.633 に答える