Observableコレクションを使用してDatagridをデータベースにDatabindingするための単純なWPFアプリケーションを作成しています(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>
このエラーを克服する方法は? ありがとう。
PS : MSDN フォーラムに同じ質問を投稿しましたが、私のコード全体を参考にして、理解を深めてください。
ユーザーの提案により、OnStartup() をこのように保持する必要がありますか?
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
}
}