Różnica polega na tym, kto jest odpowiedzialny e do tworzenia widoku. W scenariuszu IRegion.Add
(nazywanym także View Injection) odpowiadasz za wcześniejsze utworzenie widoku. W innym scenariuszu z RegisterViewWithRegion
(zwanym także View Discovery) menedżer regionu tworzy sam widok.
Istnieją pewne techniczne powody, dla których warto wykonać jedną lub drugą. Na przykład
- trzeba było bardziej skomplikowany sposób tworzenia widoków (może chcesz utworzyć widok i jej ViewModel i ożenić się je poprzez ustawienie właściwości DataContext siebie), to trzeba użyć widoku wtrysk
- jeśli wykorzystasz Scope Regionów, będziesz zmuszony do użycia View Injection.
Odpowiedni Documenation jest: Dla View Skład (w tym View wtrysk vs. View Discovery i dyskusji widzenia pierwszego lub View-Presenter pierwszego pojęć): http://msdn.microsoft.com/en-us/library/dd458944.aspx
Jest też bardzo przydatny " kiedy używać każdej "sekcji. Poniżej znajduje się wyciąg z docs:
- Explicit lub programowe sterowanie, gdy widok jest tworzony i wyświetlane, lub gdy trzeba usunąć widok z regionu, na przykład w wyniku Aplikacja logiczna .
- Aby wyświetlić wiele instancji tych samych widoków w regionie, gdzie każde wystąpienie widoku jest powiązane z różnymi danymi.
- Aby kontrolować, która instancja regionu został dodany do widoku (na przykład , jeśli chcesz dodać szczegółowy widok klienta do określonego regionu szczegółów klienta ). Zauważ, że ten scenariusz wymaga obszarów o zasięgu zdefiniowanym w dalszej części tego tematu: .
Mam nadzieję, że to pomoże.
@ Anderson - twoja odpowiedź naprawdę pomaga. Rozumiem, że IRegion.Add i IRegionManager.RegisterViewWithRegion tworzą konkretną instancję widoku i natychmiast dodają ją do IRegionCollection. Wprawdzie po prostu mam przyczółek na CAG. Czy możesz wskazać mi przykład z większą ilością szczegółów? Przeszedłem przez QuickStarts i HowTos, ale nie do końca rozumiem, kiedy do jednego lub drugiego, ponieważ próbki używają ich w metodzie Imodule.Initialize i nie wydają się robić nic innego w przykładach. –
Nie, różnica jest z Add, przechodzisz w już utworzony widok. W RegisterViewWithRegion przekazujesz albo Typ, Delegata, albo Obiekt (instancjonowany widok). W większości przypadków to ostatnie przeciążenie nie jest używane. Daj mi chwilę, a pokażę ci właściwe miejsce w Dokumentach. –
Zaktualizowany linkiem do najlepszego zasobu w dokumentacji i wyciągnąłem oficjalne informacje na temat tego, kiedy należy użyć wtrysku widoku a wyświetlić odkrycie. Mam nadzieję, że jest jaśniejszy niż mój opis. –