您好我想刷新/重新加载View,不仅是datacontext,还有一切。我试图从控制器中调用那些2,但没有任何反应:
UpdateLayout()
InvalidateVisual()
原因是我有一些属性是OneTime模式,我想在屏幕保存后刷新它们。
答案 0 :(得分:1)
OneTime属性正是这样做的 - 它们获取一次值。如果要在特定时间触发更新,则应在那时为这些属性引发NotifyPropertyChanged。如果您不希望每次更改时都更新它们,那么只有在您希望更新值时,才应在更改属性时引发事件。
然而,这听起来像你应该使用一些抽象层来处理你正在使用的这个保存想法,然后计算和更新这些字段。如果它们处于单独的视图(无论是不同的控件,窗口,对话框等),它们不共享ViewModel(或者,在ASP中,控制器)。相反,它们应该来回传递信息,或者与您正在操作的业务对象同步,并且只在处于可查看状态时更新UI。