在视图中需要时更新 DP,而不是在更改时更新

本文关键字:更新 视图 DP | 更新日期: 2023-09-27 18:33:29

例如,假设我有一个组合框,其itemsSource绑定到依赖项属性。绑定列表值可以根据许多因素而更改。计算这些值需要大量的时间,因此除非必要,否则我不希望应用程序更新集合。MVVM 中仅当视图中需要数据时才"懒惰地"更新绑定属性的正确方法是什么(即当组合框下拉时)?

在视图中需要时更新 DP,而不是在更改时更新

我会在ViewModel中添加一个方法:

class ViewModel {
    public void Refresh() {
        // ...
    }
    // ...
}

。并在必要时在您的控制中调用它。

class Control : UserControl {
    private ViewModel ViewModel = new ViewModel();
    void OnDropDown() {
        ViewModel.Refresh();
    }
    // ...
}

您的 ViewModel 应该知道屏幕上的所有绑定数据,因此您的视图模型将以某种方式获取下拉列表的数据。

触发获取的通常是 ViewModel 中的"命令",该命令通常来自按钮单击或任何其他视图事件。