MonoTouch.Dialog: respuesta a una elección del grupo de radio

Tengo un cuadro de dialog creado por MonoTouch.Dialog. Hay una list de médicos en un grupo de radio:

Section secDr = new Section ("Dr. Details") { new RootElement ("Name", rdoDrNames){ secDrNames } 

Deseo actualizar un Element en el código una vez que se haya elegido un Doctor. ¿Cuál es la mejor manera de recibir una notificación de que se ha seleccionado un RadioElement ?

Crea tu propio RadioElement como:

 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; } 

nota: no use un evento estático si desea tener más de un grupo de radio

Luego crea un RootElement que use este nuevo tipo, como:

  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 ("Dr. Who ?") { new MyRadioElement ("Dr. House"), new MyRadioElement ("Dr. Zhivago"), new MyRadioElement ("Dr. Moreau") }, new Section ("Winner") { se } }; } 

[ACTUALIZAR]

Aquí hay una versión más moderna de este RadioElement:

 public class DebugRadioElement : RadioElement { Action<DebugRadioElement, EventArgs> onCLick; public DebugRadioElement (string s, Action<DebugRadioElement, EventArgs> onCLick) : base (s) { this.onCLick = onCLick; } public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path) { base.Selected (dvc, tableView, path); var selected = onCLick; if (selected != null) selected (this, EventArgs.Empty); } }