1

Ninject を使用して WPF アプリを作成しています。Application.xaml.vb でバインディングを作成し、カーネルを Application.Current.Properties に保存して、必要に応じてこれらのバインディングを解決できるようにします。

設計時に次のエラーが表示されます: 「MainUserViewModel」のインスタンスを作成できません。MainUserViewModel のコンストラクターからコードを削除すると、エラーは発生しません。

Public Sub New()
    'IoC is the kernel
    Dim repository = IoC.Get(Of IUserRepository)()
    _users = New ObservableCollection(Of User)(repository.GetAll()) 
End Sub

ただし、コードを実行すると、エラーはなくなり、ビューは _users から正常に読み込まれます。エラーが発生した場合、コードはコンパイルされず、動作する (ように見える) と思います。

VM の他のすべての部分を削除し、それらをすべて追加し直しました。エラーは、そのコード行を使用した場合にのみ表示されます。

なぜこれが起こっているのか誰でも説明できますか?リポジトリを確認しましたが、期待されるデータはすべてそこにあります。

編集

XAML が実行されていないために依存関係を解決できないために、XAML でエラーが発生している可能性はありますか? それで、それが知る限り、オブザーバブルは決して初期化されませんか?

4

1 に答える 1