0

作成したRadioGroupがあります。

Root = new RootElement ("Club 1") {
            new Section ("Club Members"){
                new StringElement ("P1", "Kyle"),
                new StringElement ("P2", "Matt"),
                new RootElement("Members", new RadioGroup(0))
                {
                    CreateRoot()
                }

            }

上記のRootElementは、RadioGroupから選択された値を表示する必要があります。

RootElement CreateRoot ()
    {
        StringElement se = new StringElement (String.Empty);
        MyRadioElement.OnSelected += delegate(object sender, EventArgs e) {
            se.Caption = (sender as MyRadioElement).Caption;
            var root = se.GetImmediateRootElement ();
            root.Reload (se, UITableViewRowAnimation.Fade);
        };
        return new RootElement (String.Empty, new RadioGroup (0)) {
            new Section ("Select Member") {
                new MyRadioElement ("No Member Selected"),
                new MyRadioElement ("Member 1"),
                new MyRadioElement ("Member 2"),
                new MyRadioElement ("Member 3")
            }
        };
    }

私は外部のクラスを持っています:

class MyRadioElement : RadioElement {
    public MyRadioElement (string s) : base (s) {}

    public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path)
    {
        base.Selected (dvc, tableView, path);
        var selected = OnSelected;
        if (selected != null)
            selected (this, EventArgs.Empty);
    }

    static public event EventHandler<EventArgs> OnSelected;
}

選択した値を取得して親ルート要素に表示するにはどうすればよいですか?

4

1 に答える 1

0

私はコントローラーを非アクティブ化していませんでした。

class MyRadioElement:RadioElement {public MyRadioElement(string s):base(s){}

public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path)
{
    base.Selected (dvc, tableView, path);
    var selected = OnSelected;
    if (selected != null)
        selected (this, EventArgs.Empty);

    dvc.DeactivateController(true);
}

static public event EventHandler<EventArgs> OnSelected;

}

于 2012-10-20T16:12:44.693 に答える