【问题标题】:Prism+MVVM: How to refresh control's UI without the binding property change?Prism+MVVM:如何在不更改绑定属性的情况下刷新控件的 UI?
【发布时间】:2015-10-16 12:22:24
【问题描述】:

现在我想在 ViewModel 中的绑定属性不变的情况下刷新控件的 UI,有什么想法吗?

解释更多:

这个问题的细节是控件的绑定属性(数据源)仍然存在,但是 ViewModel 中与控件的 UI 相关的另一个属性发生了变化。当该属性发生变化时,我需要刷新 UI。

非常感谢您提供的任何帮助。

【问题讨论】:

  • “刷新”到底是什么意思?该单一属性如何影响 UI?改变后应该有什么不同?
  • @PieterWitvoet ViewModel实现了INotifyPropertyChanged接口,当datagridview等绑定到控件的属性发生变化时,OnPropertyChanged方法可以通知控件刷新UI,就像在datagridview中添加新记录一样。
  • 引发PropertyChanged 事件,UI 应该会更新。我错过了什么吗?

标签: wpf mvvm prism


【解决方案1】:

如果您使用的是INotifyPropertyChanged,那么您只需引发 PropertyChanged 事件,提供控件绑定到的属性的名称。 例如

var localHandler = PropertyChanged;
if (localHandler != null)
{
    localHandler(this, new PropertyChangedEventArgs("YOURPROPERTYNAME"));
}

在您的问题的一个 cmets 中,您提到必须提高 INotifyPropertyChanged 以通知控件其 ItemsSource 已更改。如果这是您想要做的,那么我建议绑定到 ObservableCollection,因为它将处理使显示项目的控件保持最新。

【讨论】:

    猜你喜欢
    • 2016-05-04
    • 2019-08-29
    • 2019-10-03
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多