2012-05-07 44 views
0

例如,說我有一個組合框,其itemsSource綁定到依賴項屬性。綁定列表值可以根據許多因素改變。計算這些值需要很少的時間,因此我不希望應用程序在必要時更新集合。只有在視圖中需要數據時(即組合框下降時),MVVM纔會「懶惰地」更新綁定屬性的正確方法是什麼?在需要時更新DP而不是更改

回答

1

我想一個方法添加到ViewModel

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

    // ... 
} 

......並在必要時在你的控制調用它。

class Control : UserControl { 
    private ViewModel ViewModel = new ViewModel(); 

    void OnDropDown() { 
     ViewModel.Refresh(); 
    } 

    // ... 
} 
+0

謝謝你,這是有道理的,而我正在傾向於。這就是說,OnDropDown msdn參考不會說'when'事件被觸發。你知道,如果它是在下降之前或之後下降?沒有previewDropDown事件。 –

+0

@ach - 不確定,但您可以嘗試捕獲MouseDown事件。 – ken

1

您的視圖模型應該知道屏幕上的所有綁定的數據,因此它是你的視圖模型在某種程度上將獲取數據的下拉列表。

什麼觸發器取指通常是ViewModel中的「命令」,通常來自按鈕點擊或任何其他視圖事件。

相關問題