我的应用程序有一个简单的搜索屏幕。其中一个参数是“Radius”(与用户当前位置的距离)。半径选择器绑定到ViewModel上的“Radius”属性。
ViewModel正在侦听Radius属性的更改,当它发生更改时,如果用户之前没有选择过他们的位置,我想调用对话服务。
所以我希望应用程序使用MVVM Light的信使服务来监听来自ViewModel的消息,如果它收到消息“selectlocation”,它应该将“位置选择器”UI显示为模式对话框。
使用MessageDialog很容易。不知何故,它创建了它的UI并将其覆盖在屏幕上的任何内容之上。我该怎么做?但是有一个完全定制的模态对话框?
我可以创建一个usercontrol并在页面中托管,然后让页面监听消息然后显示用户控件,但是,我更喜欢它在全局级别。
在伪代码中,我希望有一个Dialog服务来执行此操作:
void SelectLocation(onSuccessCallback, onCancelCallback)
{
Window.Current.ShowDialog(new LocationSelectorUserControl(onSuccessCallback, onCancelCallback));
{
与MessageDialog几乎相同,但具有自定义UI。
有没有办法做到这一点?
答案 0 :(得分:0)
抽象地说,要提供类似的东西,你必须创建一个空白窗口:
ShowDialog
方法重载