2013-10-24 14 views
0

我工作的一个应用程序,其中一个网格/弹出一个列表框点击打开,网格打开成功使用的IValueConverter但我的问题是:如何隐藏表格/弹出使用MVVM模式

- >当我按下回我在手机上键入一个RelayCommand“Home_ViewModel.cs”,我能够成功调用方法,但Grid不隐藏在BackKeyPress上。

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

- >我不知道我在OOPs概念或XAML上的绑定数据上工作错误。请看我的代码有Sky-Drive链接。在这帮助我!

天空驱动器代码的链接:

Problematic Code Link

- >同昆士兰科技大学。我询问HERE但没有得到任何响应

问候,

Pardeep

+0

嗨离散事件, 2-3小时头痛后,我才知道,我的ViewModels不连接/通信与每其他: - >我想通过AllPost_ViewModel.cs连接/沟通Home_ViewModel.cs来隐藏BackKeyPress上的我的网格布局(在ListBox Tap上打开的“网格”)。 - >由于我第一次使用MVVM,所以我不知道如何使用GalaSoft.MvvmLight.Messaging.Messenger来连接我的ViewModel。 - >帮助!! Regards, Pardeep – prdp89

回答

0

下面是一些样本:onetwo

在价值的情况下,你可以通过调用从一个虚拟机到另一个:

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

好一点的办法是

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

使用它,只有快速测试,真正的项目应该在信息工作。

0

维塔利Vasylenko我与您的解决方案不同意,所以我想到目前为止:

注册一个信使的Allpost_ViewModel构造。像:

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"); 
     } 

    } 

- >它成功地显示经由消息传递的消息,但是我没有如何使用此技术来完成我的各自任务。
- >我只想隐藏我的弹幕backkeypress ..帮助!
- >更新我的代码链接是在这里:Code Link

问候, Pardeep