任务完成后加载usercontrol

时间:2015-03-26 09:30:56

标签: c# xaml windows-phone-8.1 mvvmcross

我有一个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;
        }

    } 

1 个答案:

答案 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以确保绑定是正确的,我觉得那里有问题。