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 でエラーが発生している可能性はありますか? それで、それが知る限り、オブザーバブルは決して初期化されませんか?