あなたは型の安全性を実装するために使用し、Xamarin.Formsに
最初の方法
リファレンスビューモデルをMVVMバインディングを作成する際に、文字列をハードコーディング避け、代わりにnameof
を使用できる2つの方法があります。
var myViewModel = new MyViewModel();
BindingContext = myViewModel;
var submitButton = new Button();
submitButton.SetBinding(Button.CommandProperty, nameof(MyViewModel.SubmitButtonPressed));
第二の方法(非推奨)
はSetBinding
方法についてType
としてビューモデルを含めるとFunc
を使用しています。この技術を使用している場合
var myViewModel = new MyViewModel();
BindingContext = myViewModel;
var submitButton = new Button();
submitButton.SetBinding<MyViewModel>(Button.CommandProperty, vm => vm.SubmitButtonPressed);
は、ビューモデルにSubmitButtonPressed
プロパティの名前をリファクタリングすると、新しい名前は、あなたのビューにまで浸透します! もう一度タイプミスを心配する必要はありません! Xamarin.Formsのv2.3.4のよう
更新、2017年1月23日
、 "第二の方法は、" ジェネリックを使用してデータバインディングを設定し、上記の、推奨されません。 Xamarin.Formsチームは、一般的な方法は最終的に実行時に非ジェネリックな方法に変換されると説明しました。Expression-parsingは高価でCPUを大量に消費するため、モバイルデバイスのパフォーマンスが低下します。
[データバインドの種類を安全にしてリファクタリングをサポートする方法]の複製の可能性あり(http://stackoverflow.com/questions/1329138/how-to-make-databinding-type-safe-and-support-refactoring) –
ポイント!それと似ていますが、Xamarin.FormsはWPFとは異なるバインディングメカニズムを使用しています。 –
私はそれがXamarinでどのように機能するかについてもっと詳しくお伝えします –