2017-09-27 8 views
0

ビューモデルのコマンドでは、現在表示されているContentPage(ビューモデルにバインドされている)がCommandParameterとして必要です。Xamarin.Formsは現在のContentPageをXAMLのCommandPropertyとして使用します

同様:

<Button Text="Save" 
     Command="{Binding AddObjectAndClosePage}" 
     CommandParameter={Binding MyContentPage} /> 

しかし、XamarinはElementNameバインディングをサポートしていません。 ContentPageをパラメータとして使用するにはどうすればよいですか?

+0

このメソッドは、私のビューモデルのプロパティでした:)。しかし、私はこのアプローチが全く間違っていることを知りました。 – Tobonaut

答えて

1

[OK]を、それは完全に私のせいだった。 私のアプローチは、mvvmパターンのすべてのルールを破っていました。

あなたは、書面で、あなたののviewmodelのコマンド方式でNavigationコンテキストにアクセスすることができます。

Application.Current.MainPage.Navigation.PopModalAsync(); 

レッスンを学びました。

+0

プリズムを使うことを考えてみましょう。これは 'INavigationService'を公開しています。これはあなたのビューモデルに注入することができ、まさにその目的に役立ちます。 –

+0

@PaulKertscherはtippに感謝します。私はそれを無視しました。なぜなら、外部の依存関係を追加する前にまず基本を理解したかったからです。しかし、これは間違った方法でした。 – Tobonaut

+0

基本を理解することは間違いなく良いことですが、現実世界のプロジェクトになるとすぐに、自分自身でPrismに恩恵を与えます; –

関連する問題