无法创建“MainViewModel”的实例
我正在创建一个简单的WPF应用程序,用于使用Observable集合(遵循MVVM模式)实现数据绑定到数据库的数据绑定。
App.xaml.cs类
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var mainWindow = new MainWindow(); var viewModel = new MainViewModel(); mainWindow.Show(); } }
当我尝试将它绑定到我的XAML时,我引发了以下错误:
无法创建“MainViewModel”的实例
XAML代码:
如何克服这个错误? 谢谢。
PS:我在MSDN论坛上发布了相同的问题,但是我的整个代码,请寻求更好的理解。
根据用户的建议,我是否必须以这种方式保留我的OnStartup()?
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); } }
尝试在MainWindow的构造函数上进行绑定,并将其从XAML中删除:
public MainWindow() { InitializeComponent(); DataContext = new MainViewModel(); }
这应该工作..
您正在混合使用两种不同的方法来设置DataContext。 选择一个并继续。
如果你的viewmodels有默认的构造函数(即没有参数的构造函数),你可以在xaml中完成所有操作:
或者你将Window.DataContext保留在视图中,并在其他地方单独执行,也许在之前的OnStartup()中。
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var mainWindow = new MainWindow(); var viewModel = new MainViewModel(); mainWindow.DataContext = viewModel; // Bind the ViewModel to the Window Datacontext. mainWindow.Show(); } }