我如何在Foreach循环Xamarin表单中获取数据

时间:2018-12-13 14:14:58

标签: c# xamarin xamarin.forms

我正在尝试从模型中的字符串获取值(HTTPClient提取所有数据,并在应用程序中显示了该数据)。但是,我需要达到foreach循环内的值。

这是我在viewmodel中的方法:

public async Task GetDataAsync()
    {
        var DataAsync = await _todoService.GetData(doItem.id, "4000");

        try
        {
            var doPin = new Pin
            {
                Type = PinType.Place,
                Position = new Position(lats, lons),
                Label = Title,
            };

            Map.Pins.Add(doPin);

            Map.PinClicked += (sender, args) =>
            {
                IsPinVisible = true;

                NewAddress = Address + todoItem?.dist;

            };
            Map.MapClicked += (sender, args) =>
            {
                IsPinVisible = false;
            };               

            foreach (var i in parkDataAsync)
            {
                var todoPin = new Pin
                {
                    Type = PinType.Place,
                    Position = new Position(i.lat, i.lon),
                    Label = i.name
                };

                Map.Pins.Add(todoPin);


                Map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(eventlat, eventlon), Distance.FromKilometers(1)));

            }
        }
        catch (Exception err)
        {
            Debug.WriteLine("Error: {0}", err);
        }
    }       

这是我从中获取值的正确方法(也在viewmodel中):

private TodoItem _todoItem;
    public TodoItem todoItem
    {
        get => _todoItem;
        set
        {
            _todoItem = value;
            NewAddress = value.dist;
        }
    }

这是引起问题的字符串:

NewAddress = Address + _parkItem?.dist;

_parkItem?.dist为空由于某种原因。数据是之前提取的,所以我不明白为什么它为空。

我还尝试了其他方法,以便从以下位置获取i值:

foreach (var i in parkDataAsync)

我尝试过这种运气不好的事情:

//NewAddress = Address;// + ___parkItem.Add(parktItem.dist);// parkDataAsync.Add(parktItem.dist);

0 个答案:

没有答案