我的 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/