繁体   English   中英

如何在类构造函数中使用方法数据 c# xamarin

[英]How to use method data in a class constructor c# xamarin

我有一种从 API 获取数据的方法:

        async Task WaterDataForecast()
        {   
            WaterBindingData waterData = await _restServiceData.GetWaterDataForecast(GenerateRequestUri(Constants.EndPoint), GenerateRequestUriStations(Constants.EndPoint));
            BindingContext = waterData;

            var firstCity = waterData.WaterStation.Stations[0].NameEN;
        }

我想使用waterData.WaterStation.Stations[0].NameEN; 或构造函数类中的firstCity

我的构造函数类:

public MainPage()
    {
        InitializeComponent();

        _restServiceData = new RestServiceData();

        _ = WaterDataForecast();

        CustomPin pin1 = new CustomPin
        {
            Type = PinType.Place,
            Position = new Position(41.59043006333251, 24.766286971618303),
            Name = "Xamarin", 
            Label = "р. Бяла",
            Address = "гр. Смолян",
            CodeNum = 1,
            AlertLevel = 2
        };

        CustomPin pin2 = new CustomPin
        {
            Type = PinType.Place,
            Position = new Position(41.56817473054596, 24.758451447799708),
            Label = "р. Черна",
            Name = "Xamarin",
            Address = "гр. Смолян",
            CodeNum = 2,
            AlertLevel = 2
        };

        customMap.CustomPins = new List<CustomPin> {
            pin1,
            pin2,
        };
        customMap.Pins.Add(pin1);
        customMap.Pins.Add(pin2);

        customMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(41.567797926753485, 25.389703182725665), Distance.FromKilometers(70)));

        DatabaseConnection(customMap.CustomPins);
    }

我想在pin1标签字段上设置firstCity吗?

我可以得到如何做的例子吗?

我初始化 _ = WaterDataForecast(); 在构造函数中,但如何获取 waterData.WaterStation.Stations[0].NameEN 并在 pin 中的标签上设置?

您可以调用该方法WaterDataForecast不迟于初始化CustomPin ,并通过CustomPin作为参数传递给方法,更新任务内侧的标签。

示例代码


public MainPage(){
   CustomPin pin1 = new CustomPin
   {
    Type = PinType.Place,
    Position = new Position(41.59043006333251, 24.766286971618303),
    Name = "Xamarin", 
    Address = "гр. Смолян",
    CodeNum = 1,
    AlertLevel = 2
   };

   WaterDataForecast(pin1);
}



  async void WaterDataForecast(CustomPin pin)
  {   
       WaterBindingData waterData = await _restServiceData.GetWaterDataForecast(GenerateRequestUri(Constants.EndPoint), GenerateRequestUriStations(Constants.EndPoint));


       MainThread.BeginInvokeOnMainThread(() =>
       {
           pin.Label = waterData.WaterStation.Stations[0].NameEN;
       });
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM