c# - 如何等待 WPF 绑定(bind)延迟完成

标签 c# wpf binding

我的 ViewModel 实现了 INotifyPropertyChanged 和 INotifyDataErrorInfo 接口(interface)。更改属性时,将触发验证,从而启用\禁用“保存”按钮。

因为验证步骤很耗时,所以我使用了延迟绑定(bind)属性。

我的问题是,我可以在“名称”属性更新之前键入我的更改并按“保存”。

我想在按下 SaveChanges 时强制立即更新 TextBox.Text。目前,我必须在执行之前添加一个 sleep ,以确保所有更改都已在 ViewModel 上发生。

<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, Delay=1000}" />
<Button Command="{Binding SaveChanges}" />

有没有人有一些指点?

最佳答案

从 .NET 4.5 开始存在 BindingOperations

BindingOperations.GetSourceUpdatingBindings(this).ToList().ForEach(x => x.UpdateSource());

关于c# - 如何等待 WPF 绑定(bind)延迟完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016139/

相关文章:

c# - 将 ValueConverter 存储到变量

wpf - MVVM : Bind property in ViewModel to property in a different VM?

haskell - 为什么我可以在 Haskell 中将值绑定(bind)到值?

c# - 我究竟做错了什么?具有数据绑定(bind)的自定义用户控件内的依赖属性

c# - 如何在C#Nest中进行双重嵌套查询

c# - 使用哪一个; Datatable.Select() 还是 LINQ?

c# - 使用 C# 以编程方式确定计算机的最大硬盘驱动器数据传输速率

c# - 没有 Ninject 的依赖注入(inject)

java - 带有 jgoodies 排序问题的 JTable

silverlight - 无法在 xaml 中创建 View 模型实例