2016-05-26 4 views
1

Ich brauche deine Hilfe. Ich habe bereits nach den richtigen Methoden geforscht, um Dialoge mit MVVM Light für WPF zu zeigen. Aber ich bin kein Glück.So zeigen Sie Dialoge mit MVVM Light für WPF?

Ich lese das über auf wie zu implementieren/verwenden DialogService: https://marcominerva.wordpress.com/2014/10/14/dialogservice-in-mvvm-light-v5/ nur um herauszufinden, dass es keinen DialogService hat. Ich muss DialogService für WPF implementieren.

Kann mir jemand bei der Implementierung von DialogService für WPF helfen? Deine Hilfe wird hoch geschätzt.

+0

Werfen Sie einen Blick auf [diesen Artikel] (http://www.codeproject.com/Articles/820324/Implementing-Dialog-Boxes-in-MVVM) Ich schrieb letztes Jahr zu diesem Thema, es zeigt eine Art zu implementieren Sie sind näher an der Verwaltung regulärer Fenster. Ich biete auch eine komplette Standalone-Bibliothek, die Sie direkt zu Ihrem Projekt hinzufügen können. –

+0

Danke! Ich habe diesen Artikel gelesen, aber dieser Ansatz muss Eigenschaften für das Dialogfeld erstellen, das angezeigt wird, und es muss auch in der Ansichtseigenschaft deklariert werden. Ich bin immer noch auf der Suche nach einer Antwort. – Patrick

Antwort

1

Ich bin mir nicht sicher, ob dies eine perfekte Lösung ist, aber ich habe einen Dienst erstellt, um den Dialog zu zeigen.

public interface IDialogService { 
    void ShowError(Exception Error, string Title); 
    void ShowError(string Message, string Title); 
    void ShowInfo(string Message, string Title); 
    void ShowMessage(string Message, string Title); 
    bool ShowQuestion(string Message, string Title); 
    void ShowWarning(string Message, string Title); 
} 

public class DialogService : IDialogService { 
    public void ShowError(Exception Error, string Title) { 
     MessageBox.Show(Error.ToString(), Title, MessageBoxButton.OK, MessageBoxImage.Error); 
    } 

    public void ShowError(string Message, string Title) { 
     MessageBox.Show(Message, Title, MessageBoxButton.OK, MessageBoxImage.Error); 
    } 

    public void ShowInfo(string Message, string Title) { 
     MessageBox.Show(Message, Title, MessageBoxButton.OK, MessageBoxImage.Information); 
    } 

    public void ShowMessage(string Message, string Title) { 
     MessageBox.Show(Message, Title, MessageBoxButton.OK); 
    } 

    public bool ShowQuestion(string Message, string Title) { 
     return MessageBox.Show(Message, Title, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes; 
    } 

    public void ShowWarning(string Message, string Title) { 
     MessageBox.Show(Message, Title, MessageBoxButton.OK, MessageBoxImage.Warning); 
    } 
} 

Das funktioniert gut mit mir. Wenn Änderungen auf der Plattform erforderlich sind, können Sie nur die DialogService-Klasse ändern.