gpt4 book ai didi

wpf - WPF 中的实时绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 11:06:46 27 4
gpt4 key购买 nike

很简单,我怎样才能使绑定(bind)更具响应性。也就是说,在后台更改 View 模型时更接近于更改界面。

我有一个基于计时器的进度条,令人难以置信的跳跃。而且我有一个触摸屏键盘,它会在按下键后更新字段,比如几小时(夸张)。

最佳答案

好的,在使 UI 响应时,您可以使用三个选项:

(1)。使用异步绑定(bind):

<TextBlock Text="{Binding ViewModelTextProperty, IsAsync=True}"/>

这样 ViewModelTextProperty 的值将被异步检索。

(2)。使用 PriorityBinding - 它类似于上一个选项,但另外它允许您在主绑定(bind)异步执行时显示一些内容:

<TextBlock>
<TextBlock.Text>
<PriorityBinding>
<Binding Path="ViewModelTextProperty" IsAsync="True"/>
<Binding Path="FastViewModelTextProperty" IsAsync="True"/>
</PriorityBinding>
</TextBlock.Text>
</TextBlock>

顶部指定慢速绑定(bind),底部指定快速绑定(bind)。也就是说,在本例中,FastViewModelTextProperty 的值将首先显示,当 ViewModelTextProperty 的值准备好时将显示。

(3)。最后,您可以在 View 模型中使用通常的异步编程(异步调用方法、使用计时器等)。并且每当您准备好显示一些数据时,使用 Dispatcher 更新 UI(设置绑定(bind)属性的值):

private void OnAsyncOperationCompleted()
{
Application.Current.Dispatcher.BeginInvoke(new Action(() => {
// Update the UI
}));
}

关于wpf - WPF 中的实时绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888416/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com