在视图中需要时更新 DP,而不是在更改时更新
本文关键字:更新 视图 DP | 更新日期: 2023-09-27 18:33:29
例如,假设我有一个组合框,其itemsSource绑定到依赖项属性。绑定列表值可以根据许多因素而更改。计算这些值需要大量的时间,因此除非必要,否则我不希望应用程序更新集合。MVVM 中仅当视图中需要数据时才"懒惰地"更新绑定属性的正确方法是什么(即当组合框下拉时)?
我会在ViewModel
中添加一个方法:
class ViewModel {
public void Refresh() {
// ...
}
// ...
}
。并在必要时在您的控制中调用它。
class Control : UserControl {
private ViewModel ViewModel = new ViewModel();
void OnDropDown() {
ViewModel.Refresh();
}
// ...
}
您的 ViewModel 应该知道屏幕上的所有绑定数据,因此您的视图模型将以某种方式获取下拉列表的数据。
触发获取的通常是 ViewModel 中的"命令",该命令通常来自按钮单击或任何其他视图事件。