我有一個使用MVVM的WPF應用程序;當我在我的主窗口ViewModel類中更改ViewModel時,新的用戶控件不會顯示在窗口中...原始的控件仍然存在。該視圖模型是這樣的:更改ViewModel時窗口不會更新
public class MainWindowViewModel : ViewModelBase {
public ViewModelBase Workspace;
public MainWindowViewModel()
{
var w = new CustomerDetailsViewModel();
SetActiveWorkspace(w);
}
void NavigationService_ViewChanged(object sender, ViewChangedEventArgs e)
{
SetActiveWorkspace(e.View);
}
void SetActiveWorkspace(ViewModelBase workspace)
{
Workspace = workspace;
}
}
我的XAML看起來像這樣: < ContentControl Content="{Binding Path=Workspaces}" >
導航服務ViewChanged事件被解僱,並SetActiveWorkspace方法被調用的參數正確的觀點。但是,之後,視圖不會重新加載。我在這裏錯過了什麼?
是否要更新視圖的DataContext屬性到新的虛擬機? – 2011-04-20 17:58:51
不,我不是,但我不認爲我需要......我爲什麼? – drowned 2011-04-20 18:18:55
您表示您正在更換虛擬機。視圖的DataContext是VM,所有綁定都是相對於DataContext的。該視圖需要將正確的VM作爲DataContext。 – 2011-04-20 21:28:44