C# xamarin.forms-将viewModel数据传递给android活动
我正在为音量按钮事件进行C# xamarin.forms-将viewModel数据传递给android活动,c#,android,xamarin,mvvm,xamarin.forms,C#,Android,Xamarin,Mvvm,Xamarin.forms,我正在为音量按钮事件进行OnKeyDown和Up。如果应用程序检测到他们都被点击了,那么它应该移动到另一个页面。问题是我想将BindingContext传递到新页面 总的来说,它位于MainActivity.cs: public override bool OnKeyDown(Keycode keyCode, KeyEvent e) { if (keyCode == Keycode.VolumeUp) {
OnKeyDown
和Up。如果应用程序检测到他们都被点击了,那么它应该移动到另一个页面。问题是我想将BindingContext
传递到新页面
总的来说,它位于MainActivity.cs
:
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.VolumeUp)
{
_pressedKeys.Add(Keycode.VolumeUp);
if (_pressedKeys.Contains(Keycode.VolumeDown))
{
ChangePage(); //go to view
}
return true;
}
if (keyCode == Keycode.VolumeDown)
{
_pressedKeys.Add(Keycode.VolumeUp);
if (_pressedKeys.Contains(Keycode.VolumeUp))
{
ChangePage(); ////go to view
}
return true;
}
return base.OnKeyDown(keyCode, e);
}
整体功能正常,很好。问题是因为我不知道如何传递BindingContext
。我试着这样做:
var mainViewModel = Application.Current.MainPage.BindingContext as MainViewModel;
但是应用程序
不包含当前的定义
我仍在学习xamarin.forms并在几个小时内努力解决这个问题。。。你们能帮我吗?也许你们应该使用:
var mainViewModel = App.Current.MainPage.BindingContext as MainViewModel;
检查应用程序类名(在PCL库中)。这应该行得通