我正在使用Windows移动应用程序并遵循MVVM结构。
我有一个方法,我绑定了“lst_activity”,它是Observable集合对象。
并且该列表在get方法中返回。
但问题是当我调用“List_ActivityType()”这个函数时,它不会等待响应。
如何制作吸气剂& c#中的setter属性async?
有相同的替代方案吗?
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)
{
}
}
答案 0 :(得分:-1)
相反等待,可能是您可以使用Dispatcher.BeginIvoke(()=&gt; {List_ActivityType()}); 基本上调度程序队列就是你的过程。