gpt4 book ai didi

c# - 无法创建 "MainViewModel"的实例

转载 作者:行者123 更新时间:2023-11-30 12:48:23 25 4
gpt4 key购买 nike

我正在创建一个简单的 WPF 应用程序,用于使用 Observable 集合(遵循 MVVM 模式)将 Datagrid 数据绑定(bind)到数据库。

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

当我尝试将它绑定(bind)到我的 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 的构造函数上进行绑定(bind)并将其从 XAML 中删除:

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

这应该有效..

关于c# - 无法创建 "MainViewModel"的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com