使用MVVM和Caliburn.Micro显示MessageDialog

时间:2013-03-31 19:01:13

标签: mvvm windows-8 windows-store-apps caliburn.micro

如果视图中的某些字段在单击按钮导航时为空,则需要向用户显示MessageDialog。我可以很好地处理视图模型中的输入字段验证,我只是不确定如何从视图模型中调用messagedialgo.showasync方法并将其显示在视图上。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我看到了Caliburn.Micro的示例和lib源代码。 IWindowManager接口仅适用于WPF和Silverlight。对于WinRT,示例包含此助手类。

using System;
using Windows.UI.Popups;

namespace Caliburn.Micro.WinRT.Sample.Results
{
    public class MessageDialogResult : ResultBase
    {
        private readonly string _content;
        private readonly string _title;

        public MessageDialogResult(string content, string title)
        {
            _content = content;
            _title = title;
        }

        public async override void Execute(ActionExecutionContext context)
        {
            var dialog = new MessageDialog(_content, _title);

            await dialog.ShowAsync();

            OnCompleted();
        }
    }
}

可以从viewmodel中调用它,就像这样

new MessageDialogResult("content", "title");

请参阅CodePlex上的代码

CoroutineViewModel.cs

MessageDialogResult.cs