Windows phone 7 如何使用MVVM模式隐藏网格/弹出窗口
我正在开发一个应用程序,其中一个网格/弹出窗口在列表框点击时打开,网格使用IValueConverter成功打开,但我的问题是: ->当我按下手机上的后退键时,我在“Home_ViewModel.cs”上连接了一个RelayCommand,我能够成功地调用这个方法,但网格并没有隐藏在后退键上 ->我在BackKeyPress命令上调用了基类IsVisible属性,但无法正常工作 ->我不知道在OOPs概念上或在XAML上绑定数据时哪里出了问题。请看我的代码有天空驱动器链接。帮我这个忙 天空驱动器代码链接: -->同样的数量。我问了,但没有得到任何回应 问候, Pardeep以下是一些示例: 在这种情况下,您可以通过以下方式从一个VM呼叫另一个VM:Windows phone 7 如何使用MVVM模式隐藏网格/弹出窗口,windows-phone-7,mvvm,silverlight-4.0,mvvm-light,Windows Phone 7,Mvvm,Silverlight 4.0,Mvvm Light,我正在开发一个应用程序,其中一个网格/弹出窗口在列表框点击时打开,网格使用IValueConverter成功打开,但我的问题是: ->当我按下手机上的后退键时,我在“Home_ViewModel.cs”上连接了一个RelayCommand,我能够成功地调用这个方法,但网格并没有隐藏在后退键上 ->我在BackKeyPress命令上调用了基类IsVisible属性,但无法正常工作 ->我不知道在OOPs概念上或在XAML上绑定数据时哪里出了问题。请看我的代码有天空驱动器链接。帮我这个忙 天空驱动器
ServiceLocator.Current.GetInstance<OtherVM>().Update();
ServiceLocator.Current.GetInstance().Update();
更好的方法是
ServiceLocator.Current.GetInstance<OtherVM>().MyCommand.Execute();
ServiceLocator.Current.GetInstance().MyCommand.Execute();
仅用于快速测试,真正的project应该可以处理消息。
Vitalii Vasylenko我不同意您的解决方案,因此我目前的想法是: 在Allpost_ViewModel Const上注册Messenger。比如:
public AllPost_ViewModel()
{
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<string>(this, "String", executeThisFunction);
}
public AllPost_ViewModel()
{
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register(这个“字符串”,executethis函数);
}
并从Home_ViewModel(在backkeypress上)传递消息,如:
public void ExecuteBackCommand(System.ComponentModel.CancelEventArgs e)
{
如果(应用程序可见)
{
GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(“虚拟文本消息”、“字符串”);
}
}
->它通过消息传递成功地显示消息,但我不知道如何使用此技术来完成各自的任务。->我只想在backkeypress上隐藏我的弹出窗口。。救命
->我的代码更新链接如下: 问候,,
Pardeep各位开发人员,在头痛了2-3个小时后,我知道我的ViewModel无法相互连接/通信:->我想将Home_ViewModel.cs与AllPost_ViewModel.cs连接/通信,以便在BackKeyPress上隐藏我的网格布局(“在列表框点击时打开的网格”)->因为我是第一次使用MVVM,所以我不知道如何使用GalaSoft.MvvmLight.Messaging.Messenger连接我的ViewModel。->救命!!你好,帕迪普
public void ExecuteBackCommand(System.ComponentModel.CancelEventArgs e)
{
if (App.Visible)
{
GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<string>("Dummy text message", "String");
}
}