当我点击一个绑定命令的按钮时,我正试图将一些数据从一个页面的代码隐藏传递给服务。 所以,让我们在example.xaml页面中说我有一个带命令的按钮,在example.xaml.cs上我有一些我想要传递的数据和命令。 这可能吗? 这是我的观点:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="HelloWorld.Pages.MapPage"
xmlns:vm="clr-namespace:HelloWorld.ViewModel"
xmlns:local="clr-namespace:HelloWorld.Classes;assembly=HelloWorld">
<Button Command="{Binding GetInfo}"
Text="Hello World"/>
这是我背后的代码
Models.Data data;
public MapPage(List<Models.Info> info, Models.Data data)
{
InitializeComponent();
this.data = data;
//i want to pass this parameter to the service
var somedata = "John doe";
}
这是我点击按钮时调用的视图模型
public ICommand GetInfo
{
get
{
return new Command(async () =>
{
Info = await _apiServices.GetInfosAsync();
await Application.Current.MainPage.Navigation.PushAsync(new MapPage(Data, info));
});
}
}
这是服务页面:
public async Task<List<Info>> GetInfosAsync()
{
// ==i would like to use the data in here, the var some data ==
var keyvalues = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("TheData", somedata),
new KeyValuePair<string, string>("MoreData", "example"),
var request = new HttpRequestMessage(HttpMethod.Post,
"http:someurl/");
request.Content = new FormUrlEncodedContent(keyvalues);
var client = new HttpClient();
var response = await client.SendAsync(request);
var res = await response.Content.ReadAsStringAsync();
}
json没问题,当我对键值对中的数据进行硬编码时它会返回一些信息,但我不想对数据进行硬编码。 所以这几乎是我的代码。是否可以通过按钮点击传递数据?提前谢谢!