Rozważam użycie MVVM i chociaż rozumiem to w przeważającej części, jest jedna rzecz, której nie mogę zrozumieć.MVVM Przekazywanie danych do okna dialogowego Wyświetl model
Wyobraź sobie, że mam kombinację Widok i ViewModel, które pokazują listę foobarów. Kiedy użytkownik wybierze foobar na liście i kliknie przycisk edycji, chcę, aby pokazał się w oknie dialogowym, aby można było go edytować. To okno dialogowe (widok) będzie mieć swój własny skojarzony ViewModel.
Rozumiem, że przycisk może być powiązany z poleceniem na liście ViewModel, ale od tego w jaki sposób mogę utworzyć instancję edytora foobar?
1) Czy muszę wysłać wiadomość z powrotem do widoku, które otworzy okno dialogowe? Jeśli tak, czy nie jest to sprzeczne z celem posiadania polecenia?
2) W jaki sposób foobar zostaje wprowadzony do edytora ViewModel? Jeśli jest to przez jego konstruktora, czy nie utrudnia to deklaracji ViewModel w XAML?
Czuję, że jest to ostatni element układanki, który uniemożliwia mi korzystanie z MVVM i naprawdę chciałbym mieć do tego dobre, oddzielone od siebie rozwiązanie.
Dzięki Matt
To interesujące podejście. Patrząc na przykładowy projekt, zastanawiam się, czy mam zostać ukąszony przez utratę niektórych funkcji normalnego okna (zmiana rozmiaru, modeless, itp.). Zaczynam myśleć, że warto byłoby wziąć pod uwagę projekt, który nie wymaga skomplikowanych dialogów - i może zamiast tego mieć aplikację MDI. Co sądzisz o tym? – Matt