我想在主窗口中显示Windows / UserControl 当我单击一个菜单项时,我想在不同的窗口中显示它们。
我在WPF中使用MVVM light和postharp。
当我单击一个菜单项时,该命令进入relaycommand方法(GetCustomerView
)并创建一个新的Object
,但不显示Window
。但是当我在构造函数中创建它时,Window
显示没有任何问题
我怎么搞砸了?
怎么做才能修好呢?
我是MVVM的新手。提前谢谢。
[NotifyPropertyChanged]
public class MainViewModel : ViewModelBase
{
public MainViewModel()
{
CustomerCommand = new RelayCommand(GetCustomerView);
//CurrentView = new CreateCustomerViewModel();
}
public ViewModelBase CurrentView { get; private set; }
public RelayCommand CustomerCommand { get; set; }
private void GetCustomerView()
{
CurrentView = new CreateCustomerViewModel();
}
} // probably the ending '}' of the class --- added by editor!
编辑:从头开始看起来像是这样但我输错了代码。 如果我取消注释代码// CurrentView,它将显示“应用程序启动时的视图”,而不是“菜单项”命令“执行”
答案 0 :(得分:0)
只要查看您提供的代码,就没有实现构造函数,尽管默认情况下每个类都被赋予一个null构造函数。定义CustomerCommand
后,您的班级定义结束。我想你想在CustomerCommand
之后删除大括号。另外,我认为你的意图如下:
[NotifyPropertyChanged]
public class MainViewModel : ViewModelBase
{
public MainViewModel()
{
CustomerCommand = new RelayCommand(GetCustomerView);
//CurrentView = new CreateCustomerViewModel();
}
public ViewModelBase CurrentView { get; private set; }
public RelayCommand CustomerCommand { get; set; }
private void GetCustomerView()
{
CurrentView = new CreateCustomerViewModel();
}
} // probably the ending '}' of the class --- added by editor!