从View到ViewModel刷新DataBinding

时间:2016-02-15 14:45:29

标签: c# wpf mvvm data-binding

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

我在搜索一个事件,比如INotifyPropertyChanged,但是bindingdirection应该从视图到viewmodel。

我将从viewmodel触发此绑定更新。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

如果我理解你的问题,你的意思是:

  

View(TextBox)中的更改不会自动更新ViewModel(String Property)。

     

只有通过调用明确 UpdateSource(),视图才会更新您的ViewModel。

     

那么如何从ViewModel中明确调用UpdateSource()

我不知道是否有办法做到这一点,因为在MVVM中VM并不了解View。

您可以设置UpdateSourceTrigger = Explicit,然后通过后面的代码but isn't really compatible with MVVM拨打UpdateSource()

您可以设置UpdateSourceTrigger = OneWay,并使用"保存按钮"使用TextBox.Text作为Button.CommandParameter。 Example

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

答案 1 :(得分:1)

从View中更新ViewModel
绑定的UpdateSourceTrigger属性告诉wpf引擎何时更新viewmodel。 如果您希望在每次更改时更新viewmodel,请将其设置为" PropertyChanged"。

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

从ViewModel更新视图

每当PropertyChanged(来自。)时,

视图都会更新 触发了INotifyPropertyChanged接口。 依赖属性是另一种选择。

答案 2 :(得分:0)

你想要像刷新按钮吗?

我认为,与您实现ICommand告诉您的ViewModel相比,View希望刷新。

或者您是否只想触发Textblock的每个用户编辑?然后您必须按UpdateSourceTrigger=PropertyChanged扩展您的绑定。

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