如何在 class 构造函数中使用方法数据 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
class。
我的构造函数class:
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 中的标签上设置?
您可以在 CustomPin
初始化之后调用方法 WaterDataForecast
,并将 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;
});
}
我有一种方法可以从 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
class。
我的构造函数class:
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 中的标签上设置?
您可以在 CustomPin
初始化之后调用方法 WaterDataForecast
,并将 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;
});
}