monotouch.dialog:如何从元素内部访问parent dialogViewController?点击事件和S



我在 MonoTouch.Dialog中为 StringElement子群。在那里,我可以附加到Tapped事件上,也可以覆盖Selected()。如果我点击元素,则两者都会开火。但是,Selected()让我访问DialogViewController该元素是一个成员,其中此信息未传递给Tapped事件。

这里有什么逻辑?一个元素是否应该知道其DialogViewController?如果是:如何从Tapped事件中获取控制器?

通过查看github上的来源来发现自己。Tapped事件触发的唯一位置来自Selected()。因此,我认为实际上应该通过类型EventHandler而不是动作。

public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath indexPath)
{
    if (Tapped != null)
        Tapped ();
    tableView.DeselectRow (indexPath, true);
}

在我编写该代码时,这个想法简直就是使用lambdas,您可以将需要的任何状态传递给敲击的处理程序,而无需使用对象/eventargs模式。

因此,您会做类似的事情:

var dialogViewController = CreateDvC ();
new StringElement ("....", () => { 
    // reference any variables here
    // my container is:
    Console.Writeline (dialogViewController); 
}

相关内容

  • 没有找到相关文章

最新更新