【发布时间】:2013-12-14 10:46:03
【问题描述】:
我的应用有一个简单的搜索屏幕。其中一个参数是“半径”(与用户当前位置的距离)。半径选择器绑定到 ViewModel 上的“Radius”属性。
ViewModel 正在监听 Radius 属性的变化,当它发生变化时,如果用户之前没有选择他们的位置,我想调用一个对话服务。
所以我希望应用使用 MVVM Light 的消息服务来监听来自 ViewModel 的消息,如果它收到消息“selectlocation”,它应该显示一个“位置选择器”UI 作为模式对话框。
使用 MessageDialog 很容易。不知何故,它创建了它的 UI 并将其覆盖在屏幕上的任何内容之上。我该怎么做?但是有一个完全定制的模态对话框?
我可以创建一个用户控件并将其托管在页面中,然后让页面监听消息,然后显示用户控件,但是,我更喜欢在全局级别。
在伪代码中,我希望有一个对话框服务来执行此操作:
void SelectLocation(onSuccessCallback, onCancelCallback)
{
Window.Current.ShowDialog(new LocationSelectorUserControl(onSuccessCallback, onCancelCallback));
{
与 MessageDialog 几乎相同,但具有自定义 UI。
有什么办法吗?
【问题讨论】:
标签: c# xaml mvvm windows-runtime