Monotouch.Dialog不支持AllowMultipleSelectionDuringEditing?

时间:2012-09-26 13:17:59

标签: xamarin.ios monotouch.dialog

我不想在Monotouch.Dialog中使用UITableView.AllowsMultipleSelectionDuringEditing。如果该属性设置为true,则表示单击该表(启用了编辑模式)似乎将被忽略(不会进行选择)。如果有Element.Tapped,它将被执行。在我当前的实现中,它会将新的UIView推送到NavigationController,但这不是您在编辑模式中所期望的。

您可以使用monotouch.dialog-sample项目重现行为,只需将EditingDialog构造函数(DemoEditing.cs:57)更改为以下内容:


    public EditingDialog (RootElement root, bool pushing) : base (root, pushing)
    {
      TableView.AllowsMultipleSelectionDuringEditing = true;
    }

有没有办法使用AllowMultipleSelectionDuringEditing?如果是的话,我的方法有什么问题?

1 个答案:

答案 0 :(得分:0)

我对自己的代码遇到了同样的问题。问题是一些MonoTouch.Dialog元素的单元格SelectionStyle设置为UITableViewCellSelectionStyle.None。

我通过对Source或SizingSource进行子类化来解决它:

public class MyTableViewSource : Source
{
    public MyTableViewSource(DialogViewController container) : base(container)
    {
    }

    public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {
        var cell = base.GetCell(tableView, indexPath);
        cell.SelectionStyle = UITableViewCellSelectionStyle.Gray; // something other than None
        return cell;
    }
}

然后在你的DialogViewController中:

public class MyDialogController : DialogViewController
{
    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        // setup root element
        Root = new RootElement();

        // . . .

        TableView.Source = new MyTableViewSource(this);
        TableView.AllowsMultipleSelectionDuringEditing = true;
    }
}