Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous WPF绑定isAsync获取状态_Asynchronous_Binding - Fatal编程技术网

Asynchronous WPF绑定isAsync获取状态

Asynchronous WPF绑定isAsync获取状态,asynchronous,binding,Asynchronous,Binding,我使用Binding IsAsync属性来保持UI响应,并从属性的get访问器加载数据,这在使用MVVM时被证明是一个很好的选择。这种方法非常好,异步操作不需要任何手动代码。很少有我的数据加载需要几秒钟的情况,在此期间很难区分“无数据”和“数据加载”。是否有一个属性可以检测绑定“IsBusy”或“Loading”的状态,以便显示加载操作未完成的消息 非常感谢您的帮助。 在等待值到达时,绑定报告FallbackValue(如果有)或绑定目标属性的默认值 您可以使用此值在加载绑定时向用户显示消息。我

我使用Binding IsAsync属性来保持UI响应,并从属性的get访问器加载数据,这在使用MVVM时被证明是一个很好的选择。这种方法非常好,异步操作不需要任何手动代码。很少有我的数据加载需要几秒钟的情况,在此期间很难区分“无数据”和“数据加载”。是否有一个属性可以检测绑定“IsBusy”或“Loading”的状态,以便显示加载操作未完成的消息

非常感谢您的帮助。

在等待值到达时,绑定报告FallbackValue(如果有)或绑定目标属性的默认值


您可以使用此值在加载绑定时向用户显示消息。

我知道,这是一个旧线程。但是如果有人还感兴趣

您可以使用PriorityBinding,本文中有一个解释得很好的示例:

其思想是规定一个PriorityBinding,它反过来定义了几个常规绑定,如下所示:

  <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBlock.Text>
      <PriorityBinding>
        <Binding ElementName="MainWindow" Path="Slow" IsAsync="True" />
        <Binding ElementName="MainWindow" Path="Fast" />
      </PriorityBinding>
    </TextBlock.Text>
  </TextBlock>

绑定的顺序决定优先级,优先级最高的优先。在这种情况下,快速绑定(最低优先级)将立即填充textblock,因为您可能会将其绑定到字符串属性“Loading…”或“Sorting…”,这取决于当时发生的情况,并且没有延迟

但稍后,当慢速异步绑定的属性返回值时,它的优先级更高意味着它将接管,因为它在列表中的较早位置,其结果将被绑定,显示实际结果


如果需要填充进度弹出窗口,您可以在ViewModel的绑定属性getter中实现它,尽管我没有尝试过类似的操作。

谢谢您。。。正在尝试通过viewmodel和/或xaml将其绑定到“等待”弹出窗口。。通过WPF-MVVM应用程序模型提供极大程度的简单性。然而。。看起来没有简单的方法来实现这一点。@Bhuvan:您还可以有一个公开VM当前状态的公共枚举属性。。。已初始化,正在加载,准备就绪。然后你可以在UI中绑定到它,并在这些状态下向用户显示你想要的任何东西。。。