我修改了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中看到任何允许我访问列或tapped元素的参数。
任何想法
答案 0 :(得分:0)
您需要创建BadgeElement的自定义版本,并且基本上为图像引发一个事件,该事件与为文本引发事件分开。
幸运的是,整个source code is available,所以你可以复制/粘贴BadgeElement,重命名它,创建一个新的唯一键并修改它。