比方说,我有一个组合框,其itemsSource绑定到依赖属性。绑定列表值可以根据许多因素而改变。计算这些值需要非常重要的时间,因此除非必要,否则我不希望应用程序更新集合。只有在视图中需要数据时(即当组合框下降时),MVVM才能“懒洋洋地”更新绑定属性的正确方法是什么?
答案 0 :(得分:1)
我会向ViewModel
添加一个方法:
class ViewModel {
public void Refresh() {
// ...
}
// ...
}
...并在必要时在您的控制中调用它。
class Control : UserControl {
private ViewModel ViewModel = new ViewModel();
void OnDropDown() {
ViewModel.Refresh();
}
// ...
}
答案 1 :(得分:1)
您的ViewModel应该知道屏幕上的所有绑定数据,因此它是您的viewmodel,它将以某种方式获取下拉列表的数据。
获取的内容通常是ViewModel中的“命令”,通常来自按钮点击或任何其他视图事件。