Czy da się ustawić UserControl jako child window?

0

Kiedy chce otworzyć nowe child window w ViewModelu głównego okna robie coś takiego

ChildWindow cw = new ChildWindow();
childWindowViewModel = ChildWindowViewModel(parametr1, parametr2);
cw.DataContext = childWindowViewModel;
cw.Show();

Czy da się teraz zrobić identycznie tylko aby ChildWidnow było UserControl? Nie chce otwierać nowego okna, chciałbym schować kontrolki głównego okna i pokazać w nim usercontrol.
Dodatkowo z głównego viewmodelu muszę przekazać kilka rzeczy do viewmodelu dziecka.
Wiem że mógłbym w UserControl wystawić DependencyProperty i obsługiwać wszystko z głównego ViewModelu ale chciałbym skrócić główny viewmodel. Czy jest na to jakiś sposób czy to jest raczej zła praktyka?
Najlepiej chciałbym mieć taką strukturę

MainWindow
   UserControl1
   UserControl2
   UserControl3

Każdy usercontrol miałby swój ViewModel i jakieś parametry przekazane z głównego viewmodelu. Próbowałem coś takiego zrobić w MainWidnow.cs

var mainWindowVM = new MainWindowViewModel();
this.DataContext = mainWindowVM;

var userControl1VM = new UserControl1lViewModel(mainWindow.SomeProperty);
this.userControl1.DataContext = userControl1VM;
//itp

Ale nie jestem pewny czy to jest ok.

1

Co do pytania nie powinieneś ustawiać UserControl jako dziecko okna. Okno powinno wywoływać kolejne UserControl samo przekazywanie parametrów też jest okej czy ręcznie czy za pomocą jakiegoś frameworka.

P.S. Co do tej znajomości MVVM to bym nie przesadzał. ;)

0

A jeszcze mam takie pytanie. Jakiego frameworka do MVVM najczęściej używa się w firmach? Z tego co przejrzałem w ofertach pracy to tylko w 1 czy 2 ofertach pisano o Prism. A on wydaje mi się skomplikowany i chciałem spróbować z MVVM Light. Czy w firmach piszę się też bez frameworków?

0

Pisz w czym ci wygodnie.
Prism wydaje się skomplikowany, ale wystarczy dobrze wyjaśniony tutorial na początek, tj. , później poczytać dokumentację i powoli zacząć używać kolejnych elementów frameworka, bo nikt nie mówi że musisz używać wszystkiego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1