Как получить доступ к собственности внутри собственности? - PullRequest
2 голосов
/ 30 мая 2019

У меня есть такой класс модели:

public class MapModel
{
    public Field[] Fields { get; set; }
}

public class Field
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Node[] Nodes { get; set; }
    public string Icon { get; set; }
}

public class Node
{
    public float Long { get; set; }
    public float Lat { get; set; }
}

В моей модели представления я вызываю сервис для получения картографических данных и ObservableCollection, например:

public ObservableCollection<Field> FieldsCollection { get; set; } = new ObservableCollection<Field>(); 

var mapData = await MapService.GetMapData(token, "sr");

foreach (var md in mapData.Fields)
{
    FieldsCollection.Add(md);                
    PinIcon = Icon;
}

Теперь я пытаюсь установить значения Long и Lat из узла для положения Pin на карте ...

public void LoadMapTab()
{
    foreach (var item in FieldsCollection)
    {                
        var pin = new Pin
                      {
                          Label = item.Name,
                          Position = new Position(/* SET VALUES FROM NODE LONG AND LAT*/),
                          Icon = BitmapDescriptorFactory.FromBundle(PinIcon)
                      };

        _map.Pins.Add(pin);
        Device.StartTimer(TimeSpan.FromMilliseconds(500), () =>
            {
                _map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(/* SET VALUES FROM NODE LONG AND LAT*/),
                Distance.FromKilometers(8)));
                return false;
            });
    }
}

Итак, мой вопрос: как получить доступ к значениям Long и Lat и установить их в

Position = new Position(.......)

1 Ответ

0 голосов
/ 30 мая 2019
Элемент

представляет собой Field, поэтому он имеет массив Nodes.Вы можете использовать indexer [] для указания индекса в массиве

Position = new Position(item.Nodes[0].Lat, item.Nodes[0].Long),

note, attribtute имеет конкретное значение в C #.Это properties, а не attributes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...