2

我需要将 Mono touch 的 Table View 中出现的删除按钮绑定到我的 ViewModel 中的命令吗?

4

1 回答 1

1

一种方法是更改​​您的 MyItemType (在 ViewModel 的集合中使用),使其具有PleaseDeleteMeCommand,然后将其称为:

        public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
        {
            if (editingStyle == UITableViewCellEditingStyle.Delete)
            {
                var item = (MyItemType)GetItemAt(indexPath);
                item.PleaseDeleteMeCommand.Execute(null);
            }
            base.CommitEditingStyle(tableView, editingStyle, indexPath);
        }

另一种方法是将命令添加到拥有的 ViewModel 中。

        public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
        {
            if (editingStyle == UITableViewCellEditingStyle.Delete)
            {
                var item = (MyItemType)GetItemAt(indexPath);
                viewModel.PleaseDeleteItemCommand.Execute(item);
            }
            base.CommitEditingStyle(tableView, editingStyle, indexPath);
        }

如果愿意,这两种方式都可以适应使用声明性数据绑定 - 只需将相关的 ViewModel 端 ICommand 绑定到客户端属性。


显然,您也可以使用自定义按钮而不是内置的表格删除按钮来实现相同的功能 - 请参阅视频http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor。 html了解宠物店如何销售小猫(这涉及删除行)。

于 2013-02-05T07:48:55.173 回答