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

时间:2012-05-07 18:30:27

标签: c# wpf mvvm

比方说,我有一个组合框,其itemsSource绑定到依赖属性。绑定列表值可以根据许多因素而改变。计算这些值需要非常重要的时间,因此除非必要,否则我不希望应用程序更新集合。只有在视图中需要数据时(即当组合框下降时),MVVM才能“懒洋洋地”更新绑定属性的正确方法是什么?

2 个答案:

答案 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中的“命令”,通常来自按钮点击或任何其他视图事件。