У меня есть Icommand в моей модели представления, как показано ниже:
public ICommand SalaryCommand
{
get
{
return new Command(async () =>
{
await _apiServices.FetchSalary(this);
});
}
}
У меня есть эта команда привязать к кнопке, чтобы искать историю зарплат определенного пользователя, чтобы он выводил информация, которая работает отлично. Однако я также хочу выполнить ее при загрузке с самой последней информацией о зарплате (текущий месяц). это возможно с Icommand? если нет, то каким другим способом я могу реализовать эту функцию при загрузке. * примечание: все переменные существуют в той же модели представления, что и SalaryCommand, а не в классе FetchSalary ();
Я попытался сделать это на главной странице зарплаты, но это не сработало:
public SalaryPage()
{
InitializeComponent();
Fetching();
}
private async void Fetching()
{
ApiServices _apiServices = new ApiServices();
SalaryViewModel svm = new SalaryViewModel();
string year = DateTime.Now.Year.ToString();
string month = DateTime.Now.Month.ToString();
await _apiServices.FetchSalary(svm);
}
и вот функция FetchSalary (), которая работала для кнопки
public async Task FetchSalary(SalaryViewModel svm)
{
Debug.WriteLine("Welcome to the fetch salary method");
var keyValues = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("UserID",App._username),
new KeyValuePair<string, string>("Year",svm.dSYear),
new KeyValuePair<string, string>("Month",svm.dSMonth)
};
var request = new HttpRequestMessage(HttpMethod.Post, "somelink");
request.Content = new FormUrlEncodedContent(keyValues);
var client = new HttpClient();
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
Debug.WriteLine(content);
start = content.IndexOf("Sal_Trsp") + "Sal_Trsp".Length;
end = content.IndexOf("Sal_NssfMedPay") - start;
string transportation = content.Substring(start, end);
svm.sTransportation = "Transportation: " + simplify(transportation);
start = content.IndexOf("Sal_Date_Year") + "Sal_Date_Year".Length;
end = content.IndexOf("Sal_Date_Month") - start;
string yyear = content.Substring(start, end);
svm.sYear = "Year: " + simplify(yyear);
start = content.IndexOf("Sal_Date_Month") + "Sal_Date_Month".Length;
end = content.IndexOf("}") - start;
string mmonth = content.Substring(start, end);
svm.sMonth = "Month: " + simplify(mmonth);
start = content.IndexOf("Sal_NetPaid") + "Sal_NetPaid".Length;
end = content.IndexOf("Sal_users_FK") - start;
string retString = content.Substring(start, end);
svm.sNetPay = "Net Paid: " + simplify(retString);
Debug.WriteLine(svm.sNetPay);
}