0

JSON 応答から返されるセルのスタイルを設定したいと考えています。要素をループすることはできますが、スタイルを設定しようとするとすぐに以下のエラーが発生します。

私は何が欠けていますか?

! - エラー

コレクションが変更されました。列挙操作が実行されない場合があります。

!-- コード

string responseString = string.Empty;
        Uri uri = new Uri ("http://myhost/sample.json");
        HttpWebRequest request = new HttpWebRequest (uri);
        request.Method = "GET";

        HttpWebResponse response = request.GetResponse () as HttpWebResponse;
        var obj = JsonValue.Load (new StreamReader (response.GetResponseStream())) as JsonObject;
        if (obj != null) {


            var root = JsonElement.FromJson (obj);
            var jsonSection = root["section-1"] as Section;

            UILabel headerLabel = new UILabel();

            headerLabel.BackgroundColor = UIColor.White;
            headerLabel.Opaque = false;
            headerLabel.TextColor = UIColor.Blue;
            headerLabel.HighlightedTextColor = UIColor.White;
            headerLabel.Font = UIFont.BoldSystemFontOfSize (22);
            headerLabel.Frame = new RectangleF(8,0,200,60);
            headerLabel.Text = jsonSection.Caption;

            jsonSection.HeaderView = headerLabel;

            Console.WriteLine("before");


            foreach (var elmList in jsonSection)
            {
                Console.WriteLine("test");



                var element = new StyledStringElement(elmList.ToString())
                {

                    TextColor = UIColor.Red,
                    BackgroundColor = UIColor.Brown,
                    Accessory = UITableViewCellAccessory.DisclosureIndicator
                };

                jsonSection.Elements.Add(element);


            }



            var dvc = new DialogViewController (root, true);
            navigation.PushViewController (dvc, true);
        }



        response.Close ();
4

1 に答える 1

0

foreach 列挙を変更することはできません。代わりに for ループを使用し、インデックスを調整します

次の理由でエラーが発生しています

 jsonSection.Elements.Add(element);

私はあなたがこのコードで何をしているのか正確にはわかりません (私の頭の上から) 動作するはずです:

 var tmpSection = new Section();
 foreach(var elmList in jsonSection)
        {
            Console.WriteLine("test");

            var element = new StyledStringElement(elmList.ToString())
            {

                TextColor = UIColor.Red,
                BackgroundColor = UIColor.Brown,
                Accessory = UITableViewCellAccessory.DisclosureIndicator
            };

            tmpSection.Elements.Add(element);


        }

        jsonSection.Elements.AddRange(tmpSection); //it this doesn't work, loop through tmpSection and add the elements to jsonSection.
于 2013-04-12T22:03:51.457 に答える