MonoTouch消息元素打开包含字符串元素的页面

时间:2012-12-04 14:40:13

标签: xamarin.ios monotouch.dialog

我有以下代码:

Section _section = new Section ("Test");


foreach (ExampleData data in Example.data) {

     MessageElement Item = new MessageElement (){

    Sender = data.Name,
    Subject = data.Value,
    Body = data.Description,
    Date = data.Modified
         } ;

          _section.Add(Item);


            var root = new RootElement("Item Expanded"){

                new Section ("test2"){
                    new StringElement("Field Name", data.FieldName),
                    new StringElement("Value", data.Value),
                    new StringElement("Description", data.Description)
                }


            } ;
            _section.Add(root);

        } ;



        var _rootElement = new RootElement ("Items") {
            _section
        } ;

我希望这能够以这样的方式工作:当点击消息元素时,它显示具有相同数据的(“test2”)部分(例如,在循环的相同运行期间添加了数据)。我意识到这不会发生,因为它似乎是消息元素 需要一个Action委托对tap事件做任何事情,而且我将所有内容添加到同一部分。但是,有没有办法用消息元素复制多个嵌套的根元素和节的行为?如果我创建新的页面/屏幕并试图以这种方式进行转换,它会依赖导航控制器,即使“push”设置为true,我也会失去后退按钮的使用。

1 个答案:

答案 0 :(得分:2)

不确定你想要什么。用此替换“Item Expanded”根元素代码,使用后退按钮在导航堆栈上推送对话框viewcontoller。当然,你的DialogViewcontroller首先应该在UINavigation控制器中才能工作

        Item.Tapped += delegate(DialogViewController arg1, UITableView arg2, NSIndexPath arg3) 
        {
            var newDialogVC = new DialogViewController(
                UITableViewStyle.Grouped,
                new RootElement("Item Expanded")
                {
                    new Section ("test2"){
                    new StringElement("Field Name", "test"),
                    new StringElement("Value", "test"),
                    new StringElement("Description", "test")
                }
                                                }
                , true);

            arg1.NavigationController.PushViewController(newDialogVC,true);
        };