我正在制作OnKeyDown
和Up for音量按钮事件。如果应用程序检测到它们都被点击,那么它应该移动到另一个页面。我想将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;
但Application
不包含Current
...
我还在学习xamarin.forms并在几个小时内挣扎于此......你能帮帮我们吗?
答案 0 :(得分:1)
也许你应该使用:
var mainViewModel = App.Current.MainPage.BindingContext as MainViewModel;
检查您的App类名称(在PCL库中)。这应该有用。