是否有可能在MonoTouch中确定用户是否单击了BadgeElement中的图像?

本文关键字:是否 BadgeElement 图像 单击 有可能 MonoTouch 用户 | 更新日期: 2023-09-27 18:06:38

我修改了TODO列表应用程序,使用徽章元素代替布尔元素,如下所示:

    protected void PopulateTable()
    {
        tasks = TaskManager.GetTasks().ToList ();
        UIImage ticked = new UIImage("checkbox_checked.png");
        UIImage unticked = UIImage.FromFile("checkbox_unchecked.png");
        Root = new RootElement("Tasky") {
            new Section() {
                from t in tasks
                select (Element) new BadgeElement(t.Completed ? ticked : unticked, (t.Name==""?"<new task>":t.Name), delegate {
                        Console.WriteLine("???");
                    })
            }
        }; 
    }

是否有可能检查用户是否点击了一个图标而不是文本,并改变行为?实际上,我想要这样做…

        var task = tasks[indexPath.Row];
        if(clickedIcon) {
            currentTask = task;
            task.Completed = !task.Completed;
            TaskManager.SaveTask(currentTask);
        } else {
            ShowTaskDetails(task);
        }

但是我在IndexPath中没有看到任何允许我访问列或选中的元素的参数。

任何想法

是否有可能在MonoTouch中确定用户是否单击了BadgeElement中的图像?

您需要创建一个自定义版本的BadgeElement,并且基本上为图像引发事件,这与为文本引发事件是分开的。

幸运的是,整个源代码是可用的,所以你可以复制/粘贴BadgeElement,重命名它,创建一个新的唯一键并修改它。