2017-09-19 15 views
0

私はOnKeyDownとUp for volume buttonsイベントを作成しています。アプリが両方をクリックしたことを検出すると、別のページに移動する必要があります。私はBindingContextを新しいページに渡したいと思っています。xamarin.forms - viewModelデータをアンドロイドアクティビティに渡します

全体的には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。私はまだxamarin.formsを学習し、数時間からこのに苦しんでいます...あなたは助けてもらえ...

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

しかしApplicationCurrentの定義が含まれていませ

を:私はこのような何かをしようとしました私みんな?

答えて

1

たぶん、あなたが使用する必要があります。

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

(PCL、ライブラリ内の)アプリのクラス名を確認してください。これはうまくいくはずです。

+0

ありがとうございましたFetFrumos –

関連する問題