0

我正在开发一个在 Listbox Tap 上打开网格/弹出窗口的应用程序,使用 IValueConverter 成功打开网格,但我的问题是:

-> 当我在手机上按返回键时,我在“Home_ViewModel.cs”上连接了一个 RelayCommand,我能够成功调用方法,但网格不会隐藏在 BackKeyPress 上。

-> 我在 BackKeyPress 命令上调用了基类 IsVisible 属性,但没有正常工作。

-> 我不知道我在 OOP 概念或 XAML 上的绑定数据上哪里做错了。请查看具有 Sky-Drive 链接的我的代码。帮我解决这个问题!

Sky-Drive代码链接:

有问题的代码链接

--> 一样的。我 在这里问但没有得到任何回应

问候,

帕迪普

4

2 回答 2

0

Vitalii Vasylenko我不同意你的解决方案,所以我到目前为止:

在 Allpost_ViewModel 上注册一个 Messenger。喜欢 :

public AllPost_ViewModel()
    {
        GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<string>(this, "String", executeThisFunction);
    }

并从 Home_ViewModel (在 backkeypress 上)传递一条消息,例如:

public void ExecuteBackCommand(System.ComponentModel.CancelEventArgs e)
    {
        if (App.Visible)
        {                
            GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<string>("Dummy text message", "String");
        }

    }

-> 它通过消息传递成功显示了一条消息,但我不知道如何使用这种技术来完成我各自的任务。
->我只想隐藏我的后退键弹出窗口..帮助!
-> 我的代码的更新链接在这里:代码链接

问候,帕迪普

于 2013-10-25T08:18:28.300 回答
0

Here are some samples: one, two.

In worth case, you can call from one VM to another via:

    ServiceLocator.Current.GetInstance<OtherVM>().Update();

A bit better way is

    ServiceLocator.Current.GetInstance<OtherVM>().MyCommand.Execute();

Use it only for fast testing, real project should work on Messages.

于 2013-10-24T13:03:49.517 回答