1

StringElementaをサブクラス化していMonoTouch.Dialogます。そこで、イベントにアタッチしたり、TappedオーバーライドしたりできますSelected()。要素をタップすると、両方が発火します。ただし、この情報がイベントに渡されない要素がメンバーであるSelected()へのアクセスを私に与えています。DialogViewControllerTapped

ここでのロジックは何ですか?要素はそれを知っているはずDialogViewControllerですか?はいの場合:イベントからコントローラーを取得する方法Tappedは?

4

2 に答える 2

1

私がそのコードを書いた時点では、ラムダを使用すると、オブジェクト/EventArgs パターンを使用せずに、必要な状態を Tapped ハンドラーに渡すことができるという単純な考えでした。

したがって、次のようにします。

var dialogViewController = CreateDvC ();
new StringElement ("....", () => { 
    // reference any variables here
    // my container is:
    Console.Writeline (dialogViewController); 
}
于 2012-10-18T12:38:39.163 に答える
1

Github のソースを見て、自分自身を見つけました。Tappedイベントがトリガーされる唯一の場所は fromSelected()です。ですから、タップドはEventHandlerアクションではなくタイプである必要があると思います。

public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath indexPath)
{
    if (Tapped != null)
        Tapped ();
    tableView.DeselectRow (indexPath, true);
}
于 2012-10-17T11:55:57.677 に答える