0
我是WP8编程新手,我不知道如何调用异步方法并更新我的UI。基本上,这是我的例子:WP8如何管理代表
public class MyClassGetFinishedEventArgs : EventArgs
{
public MyClass SomeObject{ get; set; }
public List<MyClass> SomeList{ get; set; }
}
public static class MyClassManager
{
private static MyClassService service = new MyClassService();
public static event EventHandler GetFinished = delegate { };
static MyClassManager()
{
service = new MyClassService();
}
public static void Get()
{
var ea = new MyClassGetFinishedEventArgs();
service.Get(
delegate {
ea.SomeList = service.SomeList;
GetFinished(null, ea);
}
);
}
}
在Android上我作出这样的呼吁:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.frmContent);
MyClassManager.GetFinished += HandleFinishedGet;
MyClassManager.Get();
}
void HandleFinishedGet(object sender, EventArgs ea)
{
var args = ea as GetFinishedEventArgs;
if (args != null)
{
if (args.Success)
{
act.RunOnUiThread(() =>
{
//Do something to update UI
}
);
}
}
}
有没有办法做Windows Phone中的一样吗?
是,但我得到的异常 “ 'System.Reflection.TargetInvocationException' 发生在mscorlib.ni.dll” –
@FelipónSinBarreras任何内部异常? –
Yeap我发现了一个细节,我正在填充BeginInvoke块的ListBox,所以我得到的异常是“System.InvalidOperationException:在使用ItemsSource之前Items集合必须是空的” –