加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 无法创建“MainViewModel”的实例

发布时间:2020-12-15 21:45:25 所属栏目:百科 来源:网络整理
导读:我正在创建一个简单的 WPF应用程序,用于使用Observable集合(遵循MVVM模式)实现数据绑定到数据库的数据绑定. App.xaml.cs类 public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var main
我正在创建一个简单的 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代码:

<Window x:Class="MVVM_DemoAppl.Views.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:ViewModel="clr-namespace:MVVM_DemoAppl.ViewModels"
    Title="MainWindow" Height="350" Width="525">
    <!-- The error is raised here -->
   <Window.DataContext> 
     <ViewModel:MainViewModel/> 
   </Window.DataContext>

如何克服这个错误?谢谢.

P.S:我在MSDN forums上发布了同样的问题,但是在我的整个代码中,请寻求更好的理解.

根据用户的建议,我是否必须以这种方式保留我的OnStartup()?

public partial class App : Application
 {
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
    }
}

解决方法

尝试在MainWindow的构造函数上进行绑定,并将其从XAML中删除:

public MainWindow()
{
   InitializeComponent();
   DataContext = new MainViewModel();
}

这应该工作..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读