WPFのlistview.Iにいくつかの値をバインドします。クリックするか行を選択すると、一部の行が削除または非表示になります。これは次のように行います。WPFlistviewから選択したアイテムのバインディングを削除または非表示にするにはどうすればいいですか?
listview.Items.RemoveAt(listview.Items.IndexOf(listview.SelectedItem)));
しかし、これを行うには例外が発生しますか?助けてください......
WPFのlistview.Iにいくつかの値をバインドします。クリックするか行を選択すると、一部の行が削除または非表示になります。これは次のように行います。WPFlistviewから選択したアイテムのバインディングを削除または非表示にするにはどうすればいいですか?
listview.Items.RemoveAt(listview.Items.IndexOf(listview.SelectedItem)));
しかし、これを行うには例外が発生しますか?助けてください......
MVVMパターンを使用してそれを実現することができます。 ObservableCollectionを作成してから、そのコレクションで初期化するコマンドを書くことができます。実行するときは、削除するオブジェクトを{Binding}
で取得します。 - あなたのリストビューがバインドされている場合のICommandインターフェイスに
public class RemoveItemCommand<T> : ICommand
{
private ObservableCollection<T> _items;
public RemoveItemCommand(ObservableCollection<T> items)
{
_items = items;
}
public void Execute(object parameter)
{
_items.Remove((T)parameter);
}
public bool CanExecute(object parameter)
{
return true;
}
public event EventHandler CanExecuteChanged;
}
を実装テンプレートクラスは、その後、あなたのビューはこのような何か^
<DataTemplate>
<Button Command="{StaticResource DeleteCommand}" CommandParameter="{Binding}" Text="{Binding}" />
</DataTemplate>
が含まれていますされ
RemoveItemCommand:このようなその表情アイテムのデータリストに追加するには、リストビューではなく、データリスト自体からアイテムを削除する必要があります。しかし、それは必ずしも例外の原因ではありません。あなたが本当に助けることができるようになるには、もう少しコードを投稿する必要があります。 – Ross