【发布时间】:2018-02-27 20:46:45
【问题描述】:
我正在编写一个 xamarin.forms 应用程序,我想在同时按下音量增大和减小按钮时打开“特殊设置”页面。
有没有办法在 xamarin.forms 中做到这一点?
目前,我已经完成了一个事件监听器,它可以正常工作。现在我需要做的最后一件事是将绑定上下文传递给设置页面。
List<Keycode> _pressedKeys = new List<Keycode>();
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if(keyCode == Keycode.VolumeDown)
{
_pressedKeys.Add(keyCode);
CheckBoth();
return true;
}
if (keyCode == Keycode.VolumeUp)
{
_pressedKeys.Add(keyCode);
CheckBoth();
return true;
}
return base.OnKeyDown(keyCode, e);
}
public override bool OnKeyUp(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.VolumeDown)
{
_pressedKeys.Remove(keyCode);
return true;
}
if (keyCode == Keycode.VolumeUp)
{
_pressedKeys.Remove(keyCode);
return true;
}
return base.OnKeyUp(keyCode, e);
}
public void ChangePage()
{
((App)App.Current).ChangeScreen(new SettingsPage());
}
public void CheckBoth()
{
try
{
if (_pressedKeys.Contains(Keycode.VolumeDown) &&
_pressedKeys.Contains(Keycode.VolumeUp))
{
Console.WriteLine("It works!");
((App)App.Current).ChangeScreen(new SettingsPage());
_pressedKeys.Clear();
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
解决了。我添加了以下行:
var vm= App.Current.MainPage.BindingContext as MainViewModel;
【问题讨论】:
-
到目前为止你做了什么?展示你的努力?
-
我添加到我的 MainActivity.cs
OnKeyUp方法中,这是 Barney Chambers 建议的。现在我正在挖掘谷歌以找到答案如何更改页面。 -
请用新信息更新您的问题。您的代码也应该很有帮助。
-
问题已更新
-
请查看此链接希望对您有所帮助stackoverflow.com/a/38816510/3701787
标签: c# events xamarin mvvm xamarin.forms