2012-09-08 95 views
1

我是monotouch.dialog的初学者。 我试图从radiogroup中获得一个带有标题和值作为经典下拉列表的覆盖radioelement的值!MonoTouch.Dialog如何从radiogroup获取数据

但问题是检测事件ONSELECT

CODE MYRADIOELEMENT的

public class MyRadioElement : RadioElement 
    { 

    private string Caption{get; set;} 
    private int ID{get; set;} 

     public MyRadioElement(string caption, int id, NSAction selected): base(caption, id) 
     { 
      Caption = caption; 
      ID = id; 

      OnSelected += selected; 
     } 

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

    public event NSAction OnSelected; 

} 

rootElement的代码

var rootSex = new RootElement ("SEX", 
sexUser = new RadioGroup ("", -1)){new Section ("INSERT SEX"){ 
from n in Def.Get_Sexes() 
select (Element) new MyRadioElement (n.Descr, n.ID, ????delegate?????)} 
}; 

我会用委托来调用选择的事件,但它给我一个转换错误...

为什么? 感谢

回答

4

这一个应该工作

class MyRadioElement: RadioElement 
{ 
    private Action<MyRadioElement> selected; 

    public MyRadioElement(string caption, int id, Action<MyRadioElement> selected): base(caption, id) 
    { 
     this.selected = selected; 
    } 


    public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path) 
    { 
     base.Selected (dvc, tableView, path); 

     if (this.selected != null) 
        this.selected(this); 

    } 
} 

然后您可以创建元素

new MyRadioElement("Caption", 2, MyMethod) 

的MyMethod会是什么样子

private void MyMethod(MyRadioElement e) 
{ 

} 
+0

坦克杰米 但我需要选择对象,2属性:标题和ID 选择(元件)新MyRadioElement(n.Descr,n.ID,()=> \t \t \t \t \t \t {\t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t}) – user1592476

+0

我刚刚没有访问mt对话框,但RadioGroup.Selected是否允许您访问这些属性?如果需要,您可以将其转换为您自己的类型。 – Jamie

+0

对不起,但我不明白我该怎么办,你能举个例子吗? – user1592476