Я думаю, что рекомендуемый способ сделать это - создать клиентский диалог или службу сообщений, которая реализует интерфейс:
public interface IDialogService
{
Task ShowMessageAsync(string message);
}
public class DialogService
{
public async Task ShowMessageAsync(string message)
{
MessageDialog messageDialog = new MessageDialog(message);
await messageDialog.ShowAsync();
}
}
Затем вы можете использовать эту службу из любого класса в вашем приложении,.eg:
IDialogService dialogService = new DialogService();
await dialogService.ShowMessageAsync("message...");
Если вы примете рекомендованный шаблон MVVM в своем приложении, вы также можете внедрить модели ваших представлений с интерфейсом:
public ViewModel(IDialogService dialogService)
{
}
... и легко использовать макетслужба диалога в ваших модульных тестах, например:
ViewModel vm = new ViewModel(new MockDialogService());
Это невозможно, если вы используете статический класс или метод, который вы вызываете непосредственно из модели представления.