我正在使用网格/弹出窗口在列表框上打开的应用程序点击,网格使用IValueConverter成功打开但我的问题是:
- >当我在电话上按回键时,我在“Home_ViewModel.cs”上挂了一个RelayCommand,我能够成功调用方法,但Grid不会隐藏在BackKeyPress上。
- >我在BackKeyPress命令上调用了Base Class IsVisible属性,但无法正常工作。
- >我不知道我在OOPs概念或XAML上的绑定数据上工作错误。请查看具有Sky-Drive Link的我的代码。帮帮我!!!
Sky-Drive代码链接:
- >相同的qut。我问HERE但没有得到任何回复。
此致
Pardeep
答案 0 :(得分:0)
在值得的情况下,您可以通过以下方式从一个VM呼叫到另一个VM:
ServiceLocator.Current.GetInstance<OtherVM>().Update();
更好的方法是
ServiceLocator.Current.GetInstance<OtherVM>().MyCommand.Execute();
仅用于快速测试,真正的项目应该用于消息。
答案 1 :(得分:0)
你好 Vitalii Vasylenko 我不同意你的解决方案,所以我到目前为止:
在Allpost_ViewModel constr上注册一个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");
}
}
- &GT;它通过消息传递成功显示消息,但我不知道如何使用这种技术来完成我自己的任务
- &gt;我只想在backkeypress上隐藏弹出窗口..帮助!!
- &GT;我的代码的更新链接在这里:Code Link
此致 Pardeep