У меня есть три проекта - "Bootstrapper", "ApplicationView" и "Presentation".
- Проект «Bootstrapper» имеет файл app.xaml.cs, который запускает MainWindow
- В проекте "ApplicationView" есть только необходимые окна - MainWindows.xaml, PersonWindow.xaml, SchoolWindows.xaml.
- Проект «Презентация» имеет классы ViewModels и интерфейсы.
В моей модели просмотра я хочу отозвать окно. Но где я должен создать объект окна? Я прочитал статью о том, что я должен создать все экземпляры классов в файле App.xaml.cs. Но как вызвать этот объект в App.xaml.cs из viewModel? Я не могу создавать объекты в классах ViewModel, так как не могу добавить ссылку «BootStrapper» в «Презентацию», потому что VS 2010 выдает ошибку: «Добавление этого проекта в качестве ссылки вызовет циклическую зависимость».
App.xaml.cs проекта "Bootstrapper":
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
ComposeObjects();
Application.Current.MainWindow.Title = "Loose Coupling - People Viewer";
Application.Current.MainWindow.Show();
}
private static void ComposeObjects()
{
//MainWindow
var repository = new ServiceRepository();
var viewModel = new PeopleViewerViewModel(repository);
Application.Current.MainWindow = new MainWindow(viewModel);
//SuperWindow
var salut = new ServiceSalutation();
var salutViewModel = new SuperWindowViewModel(salut);
var NewForm = new SuperWindow(salutViewModel);
}
MainWindowViewModel.cs проекта "Презентация":
void NewForm(object parameter)
{
//New Window
/*/var salut = new ServiceSalutation();
//var salutViewModel = new SuperWindowViewModel(salut);*/
//var NewForm = new SuperWindow();
How can I revoke a SuperWindow.xaml from a project "ApplicationView"?
}
Как вызвать SuperWindow.xaml проекта «Презентация» из MainWindowViewModel.cs проекта «Презентация»? Я не могу добавить ссылку на «BootStrapper» в «Презентацию», потому что VS 2010 выдает ошибку: «Добавление этого проекта в качестве ссылки вызовет циклическую зависимость».
DataContext
. - person Steve   schedule 21.03.2014