微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 无法创建“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代码

<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();
}

这应该工作..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐