gpt4 book ai didi

xamarin.ios - MonoTouch.对话框 : Element Delete Event

转载 作者:行者123 更新时间:2023-12-01 14:39:17 26 4
gpt4 key购买 nike

使用 Miguel de Icaza 的 Patterns for Creating UITableViewCells ,我创建了一个自定义 UITableViewCell 并将其转换为 MonoTouch.Dialog 元素。我正在使用元素 API 创建一个编辑表单,使用我的一些自定义元素。

我正在尝试弄清楚如何响应元素的删除。我的自定义元素引用了它在数据库中代表的记录。我想以与响应 Selected 事件相同的方式响应已删除的事件,我在其中获得 DialogViewController、UITableView 和 NSIndexPath。假设我可以响应的元素存在这样的事件,我将向具有给定记录 ID 的数据库发送删除语句。

最佳答案

根据 Miguel 的回答,我向名为 MyDataElement 的子类元素添加了一个公共(public) Delete 方法。

public class MyDataElement : Element {
static NSString key = new NSString ("myDataElement");
public MyData MyData;

public MyDataElement (MyData myData) : base (null)
{
MyData = myData;
}

public override UITableViewCell GetCell (UITableView tv)
{
var cell = tv.DequeueReusableCell (key) as MyDataCell;
if (cell == null)
cell = new MyDataCell (MyData, key);
else
cell.UpdateCell (MyData);
return cell;
}

public void Delete() {
Console.WriteLine(String.Format("Deleting record {0}", MyData.Id));
}
}

然后在我的子类 DialogViewController 上,我处理 CommitEditingStyle 方法,将元素转换为 MyDataElement,然后调用 Delete 方法:

public class EntityEditingSource : DialogViewController.Source {

public EntityEditingSource(DialogViewController dvc) : base (dvc) {}

public override bool CanEditRow (UITableView tableView, NSIndexPath indexPath)
{
// Trivial implementation: we let all rows be editable, regardless of section or row
return true;
}

public override UITableViewCellEditingStyle EditingStyleForRow (UITableView tableView, NSIndexPath indexPath)
{
// trivial implementation: show a delete button always
return UITableViewCellEditingStyle.Delete;
}

public override void CommitEditingStyle (UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
{
// In this method, we need to actually carry out the request
var section = Container.Root [indexPath.Section];
var element = section [indexPath.Row];

//Call the delete method on MyDataElement
(element as MyDataElement).Delete();
section.Remove (element);
}

}

关于xamarin.ios - MonoTouch.对话框 : Element Delete Event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com