Jestem całkiem nowy dla światła mvvm i mvvm, ale myślę, że rozumiem ogólną ideę tego. Czego nie rozumiem, jeśli chcę otworzyć nowe okno, ale to okno potrzebuje danych od dzwoniącego, jaka jest najlepsza praktyka, aby przenieść te dane do nowego okna? Jeśli przekazuję dane do konstruktora, oznacza to, że potrzebuję kodu w kodzie, aby przekazać go do modelu widoku. Nie mogę używać wiadomości, ponieważ nie są to podstawowe dane. Z góry dziękuję.Najlepsze Pratice, aby otworzyć nowe okno w świetle MVVM z parametrami
Odpowiedz
Popularnym wyborem jest użycie klasy usług, która utworzy widok/widok i wyświetli nowy widok. Twój konstruktor modelu widoku i/lub metoda/właściwość może odbierać dane od wywołującego, a następnie widok byłby związany z modelem podglądu przed wyświetleniem go na ekranie.
tutaj jest bardzo prosta implementacja DialogService:
public class DialogService : IDisposable
{
#region Member Variables
private static volatile DialogService instance;
private static object syncroot = new object();
#endregion
#region Ctr
private DialogService()
{
}
#endregion
#region Public Methods
public void ShowDialog(object _callerContentOne, object _callerContentTwo)
{
MyDialogViewModel viewmodel = new MyDialogViewModel(_callerContentOne, _callerContentTwo);
MyDialogView view = new MyDialogView();
view.DataContext = viewmodel;
view.ShowDialog();
}
#endregion
#region Private Methods
#endregion
#region Properties
public DialogService Instance
{
get
{
if (instance == null)
{
lock (syncroot)
{
if (instance == null)
{
instance = new DialogService();
}
}
}
return instance;
}
}
#endregion
}
czy mógłbyś pokazać mi podstawowy przykład? Nie jestem pewien, czy podążam za tobą całkowicie. –
http://blog.roboblob.com/2010/01/19/modal-dialogs-with-mvvm-and-silverlight-4/ – geedubb
geedubb, który działa tylko dla silverlight. Buduję aplikację wpf na visual studio 2010. –
- 1. otworzyć nowe okno w MVVM
- 2. ASP.NET Response.Redirect, aby otworzyć nowe okno przeglądarki?
- 3. Jak otworzyć nowe okno apletu z apletu
- 4. Wykonanie polecenia Async w świetle MVVM
- 5. Czy otworzyć nowe okno, klikając przycisk?
- 6. Jak otworzyć nowe okno w Windows Forms w .NET?
- 7. Jak otworzyć nowe okno w nowej karcie w angular2
- 8. JavaFX otwórz nowe okno
- 9. vim okno dzielone: Skoncentruj się nowe okno
- 10. Javascript, aby otworzyć okno wyskakujące i wyłączyć okno nadrzędne
- 11. Jak otworzyć nowe okno przeglądarki na zdarzeniu kliknięcia przycisku?
- 12. Przekierowanie JavaScript - nowe okno
- 13. Otwórz nowe okno dialogowe w qt
- 14. Otwórz nowe okno w a4j: commandButton
- 15. Regularne połączenie z _blank zostanie otwarty w karcie, ale JS window.open (url, „_blank”); otworzyć nowe okno?
- 16. Jak otworzyć okno z uprawnieniami w miui?
- 17. Nowe okno z użyciem asp mvc w html formie
- 18. Najlepsze praktyki w zakresie MVVM-light + RIA
- 19. Otwórz nowe okno dialogowe drukowania z różnej zawartości HTML
- 20. Jak otworzyć okno konsoli Powershell z Powershell
- 21. Jak mogę otworzyć wyskakujące okienka w tym samym oknie WebView (nie nowe okno) w Windows UWP?
- 22. Jak skonfigurować kod VS, aby otworzyć nowe pliki w bieżącej instancji?
- 23. rChart otwiera nowe okno w błyszczącej aplikacji
- 24. selen, jak mogę wybrać nowe okno
- 25. Jak otworzyć okno z terminalu MAC
- 26. Jak pojawiają się nowe okno z przyciskiem tweet
- 27. Jak otworzyć nowe domyślne okno przeglądarki w Pythonie, gdy domyślnym jest Chrome
- 28. Nowe okno alertu w nowym Chrome
- 29. Jak mogę przekazać zmienne URL GET URL, aby otworzyć okno z Javascriptem?
- 30. Czy można otworzyć nowe okno i osadzić w nim element iframe?
Niestety wskrzesić ten z zamierzchłej przeszłości, ale co to znaczy "nie mogę korzystać z wiadomości, ponieważ nie jest podstawowym dane." ? Pytam o to, ponieważ uczę się MVVM i gdybym był w twojej sytuacji, użyłbym Messaging. – lightxx
Przykro mi, że było zbyt długo, bym pamiętał –