刷新数据绑定从视图到视图模型
本文关键字:视图 模型 数据绑定 刷新 | 更新日期: 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( 被触发。依赖属性是另一种选择。