我有一个Windows Phone 8.1应用程序,当我从列表移动到详细信息页面时。我加载了一个中心页面,并通过异步任务检索所需的项目。然而,这个过程需要相当长的时间,因为检索大量数据。因此我的绑定抛出一个异常,是否有一种方法告诉视图不加载用户控件,直到isbusy的绑定设置为false?我正在使用mvvmcross。
编辑:
我试图避免必须创建临时数据,因为对象非常大,这就是我获得异常的原因,即使绑定应该继续
public string AccountTitle
{
get
{
return _fullAccount.CustomName;
}
}
因为_full帐户为null,因此我想停止绑定(即完全加载usercontrol),直到进程完成为止,因为UI上没有任何内容可以发生,直到完成 最终我不得不做以下事情
public string AccountTitle
{
get
{
if (IsBusy) return "";
else return _fullAccount.CustomName;
}
}
答案 0 :(得分:1)
我假设你绑定了一个属性。然后我会给它一些临时数据,在异步任务完成后,将数据重新绑定到实际数据。
private BindType bindProp = TempData;
public BindType BindProp
{
get
{
return bindProp;
}
}
private void LoadDone(BindType realData)
{
bindProp= realData;
// Notify BindProp property changed
}
但它很奇怪,通常如果它是null
它应该继续,而不是例外(但你没有在问题中详细说明,所以我不能帮助你更多)。
另外我会检查xaml以确保绑定是正确的,我觉得那里有问题。