刷新数据绑定从视图到视图模型

本文关键字:视图 模型 数据绑定 刷新 | 更新日期: 2023-09-27 18:34:43

我的WPF项目中的数据绑定有问题。我正在使用 MVVM 模式,我喜欢将文本框的文本值重新加载到我的视图模型中。

我正在搜索一个事件,例如 INotifyPropertyChanged,但绑定方向应该是从视图到视图模型。

我会从视图模型触发此绑定更新。

感谢您的帮助。

刷新数据绑定从视图到视图模型

如果我

正确理解你的问题,你的意思是:

视图 (文本框( 中的更改不会自动更新视图模型 (字符串属性( 。

只有通过调用显式UpdateSource(),视图才会更新您的视图模型。

那么,如何从视图模型中调用显式UpdateSource()呢?

我不知道是否有办法做到这一点,因为在 MVVM 中,VM 不知道视图。

您可以设置 UpdateSourceTrigger = Explicit ,然后从代码隐藏中调用 UpdateSource(),但实际上与 MVVM 不兼容。

您可以设置UpdateSourceTrigger = OneWay,并将TextBox.Text的"保存按钮"用作 Button.CommandParameter。例

但真正的问题是:为什么你不想自动更新源?

你想要像刷新按钮这样的东西吗?

我认为您确实实现了告诉您的视图模型想要刷新视图的ICommand

还是您只想触发文本块的每个用户编辑?然后,您必须通过UpdateSourceTrigger=PropertyChanged扩展绑定。

<TextBox Text="{Binding MyValue, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>

从视图
更新视图模型绑定的 UpdateSourceTrigger 属性告知 wpf 引擎何时更新视图模型。如果您希望视图模型在每次更改时都更新,请将其设置为"属性已更改"。

它支持的其他值可以在这里
找到模式决定流程。此链接将提供有关不同模式的更多信息

从视图模型
更新视图

每当属性更改(从INotifyPropertyChanged interface( 被触发。依赖属性是另一种选择。