Je travaille dans l'application Windows Mobile et suis la structure MVVM.Comment créer une propriété getter & Setter async dans C#?
J'ai une méthode où j'ai lié "lst_activity" qui est un objet de collection Observable.
et cette liste est return dans la méthode get.
Mais le problème est lorsque j'appelle "List_ActivityType()" cette fonction n'est pas attendre la réponse.
Comment faire getter & propriété Setter Async C#?
Y at-il une alternative pour le même?
ObservableCollection<Activity_Type> lst_activity = new ObservableCollection<Activity_Type>();
public ObservableCollection<Activity_Type> Get_ActivityTypeData
{
get
{
await List_ActivityType();
return lst_activity;
}
}
public async Task List_ActivityType()
{
try
{
if (NetworkInterface.GetIsNetworkAvailable() == true)
{
IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings;
if (setting.Contains("UserLogin_Code"))
{
string user_code = Convert.ToString(setting["UserLogin_Code"]);
if (!string.IsNullOrEmpty(user_code))
{
ShowProgressBar();
string str = ServiceURI.Get_Activity;
Uri geturi = new Uri(string.Format(str));
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, geturi);
var response1 = await CommandClass.GetResponse<SilverHrms.Data.JsonPraserClasses.Activity_Type_RootObject>(request);
lst_activity.clear();
if (response1 != null && response1.Flag == true)
{
for (int i = 0; i < response1.lstListComboData.Count; i++)
{
if (i == 0)
{
lst_activity.Add(new Activity_Type
{
Text = "--Select--",
Value = ""
});
}
lst_activity.Add(response1.lstListComboData.ElementAt(i));
}
}
else
{
//Show_msg("Error", response1.Message);
}
CloseProgressBar();
}
}
else
{
App.RootFrame.Navigate(new Uri(PageNavigationURI.Login, UriKind.RelativeOrAbsolute));
}
}
else
{
if (!App.OnOff)
{
CloseProgressBar();
CommandClass.NetworkErrorMsg();
}
}
}
catch (Exception ex)
{
}
}
Voir cette question: http://stackoverflow.com/questions/6602244/how-to-call-an-async-method-from-a -getter-or-setter – Ofir
Vous ne devriez pas avoir une telle logique complexe dans getter/seter. Envisagez de créer une méthode async qui remplit les données et les exécute. dans le chargement de la page. – pwas
Lisez la réponse de ** Stephen Cleary **: [comment-appeler-une-méthode asynchrone-à partir d'un getter-or-setter] (http://stackoverflow.com/questions/6602244/how- pour-appeler-une-méthode-asynchrone-d'-un-getter-or-setter) – mybirthname