Ответ 1
Основываясь на комментариях и вашей путанице, похоже, что MVVM подходит для вас. Задача состоит в том, чтобы учиться MVVM.
Итак, откройте хорошую ссылку и получите прокат. MVVM на удивление легко сделать, и довольно легко обернуть все это с помощью Ninject и поместить на него лук.
Начальная кривая обучения, если вы НЕ используете стороннюю библиотеку для Ninject + MVVM, как я, немного крутой. Итак, вот несколько вещей, которые я должен был понять:
DataContext="{Binding Path=ResultViewModel,Source={StaticResource ServiceLocator}}"
Это небольшое добавление позволяет вам запускать ninject для получения вашей информации о viewmodel с вашего XAML:
<Application.Resources>
<ioc:NinjectServiceLocator x:Key="ServiceLocator" />
</Application.Resources>
этот небольшой трюк позволяет назначить этот staticresource из файла app.xaml соответствующему классу
public class NinjectServiceLocator
{
private readonly IKernel kernel;
public NinjectServiceLocator()
{
kernel = new StandardKernel(new MyMvvmModule());
}
public ResultViewModel ResultViewModel
{
get { return kernel.Get<ResultViewModel>(); }
}
}
Это примечательно. Каждая модель просмотра должна быть указана как свойство в ServiceLocator, чтобы Ninject мог их генерировать. Наконец, MyMvvmModule в приведенном выше примере является стандартным классом Ninject, в котором вы привязываете свое переопределение для Load() и связываете все свои интерфейсы.