WinForms与视图模型数据绑定-显示视图模型更改的速度较慢

WinForms与视图模型数据绑定-显示视图模型更改的速度较慢,winforms,data-binding,mvvm,viewmodel,bindingsource,Winforms,Data Binding,Mvvm,Viewmodel,Bindingsource,我有以下配置 单个表单包含大约50-60个控件(我知道这是很多)和一个负责存储表单状态的单视图模型。视图模型属性通过BindingSource绑定到表单上的可编辑控件 我的问题是。。。我希望能够用一个按钮清除表单。为了清除表格,我尝试了以下方法: 将BindingSource的数据源分配为null并重新分配新的视图模型。这最终会严重滞后 在视图模型中将所有属性设置为null/empty,然后触发OnPropertyChanged事件(我的视图模型基类正在实现INotifyPropertyCha

我有以下配置

单个表单包含大约50-60个控件(我知道这是很多)和一个负责存储表单状态的单视图模型。视图模型属性通过BindingSource绑定到表单上的可编辑控件

我的问题是。。。我希望能够用一个按钮清除表单。为了清除表格,我尝试了以下方法:

  • 将BindingSource的数据源分配为null并重新分配新的视图模型。这最终会严重滞后
  • 在视图模型中将所有属性设置为null/empty,然后触发OnPropertyChanged事件(我的视图模型基类正在实现INotifyPropertyChanged)。如果我正在清除60个字段,然后为每个字段触发一个OnPropertyChanged事件,那么这也会严重滞后
那么,是否有一种方法可以修改应用程序,使其能够清除视图模型并及时反映表单上的更改?我的表单要求所有50-60个控件都在同一个表单上,但这些控件可以分为四个逻辑组。将视图模型分解为四个可以独立处理逻辑组的演示者/视图模型对我是否有益?这是否会影响性能以及反映表单更改所需的时间


谢谢

@SLaks不幸的是WPF不是一个选项。应用程序必须基于WinForms。你能在WinForms中嵌入WPF控件吗?@SLacks我肯定能,但如果可能的话,我希望严格遵守WinForms。我想在探索嵌入式WPF控件作为一种选择之前,我会看看是否有其他人会赞同任何一种解决方案。