xamarin.forms - 将viewModel数据传递给android活动

时间:2017-09-19 12:51:16

标签: c# android xamarin mvvm xamarin.forms

我正在制作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并在几个小时内挣扎于此......你能帮帮我们吗?

1 个答案:

答案 0 :(得分:1)

也许你应该使用:

var mainViewModel = App.Current.MainPage.BindingContext as MainViewModel;

检查您的App类名称(在PCL库中)。这应该有用。