2017-06-01 16 views
0

基本ビューとそれぞれのビューモデルバインディングを持つXamarin Formsプロジェクトがあります。ViewModelにビュー要素をバインドするベストプラクティスXamarinフォーム

いくつかのビューには、リストビュー、ラベル、ボタンなどの多くの要素があるため、ViewModelにView Elementsをバインドしようとしています。ビジュアルプロパティを変更したり、例えば視認性。

私はバインディングですべての単一のプロパティをバインドすると思います。この例はcaosです。

 <Label 
     Text="{Binding PasswordLabel,Mode=OneWay}" 
     VerticalOptions="Center" 
     HorizontalOptions="Center" /> 
     <Entry 
     Text="{Binding Password, Mode=TwoWay}" 
     IsPassword="True" 
     Placeholder="Password" 
     VerticalOptions="Center" 
     HorizontalOptions="CenterAndExpand" 
     /> 

は、だから私は、ビューの要素を取得し、ボタン_button =「ボタン」

私はWebコンポーネント開発をコピーすることができますこの方法で、自分のresponsabilityおよび再利用可能で任意のコンポーネントと同様のviewmodelでの対応オブジェクトにバインドしてみてください。

あなたは私のアイデアを実践していると思います。

答えて

1

あなたが言われたように、それはそうでなければならない方法です。あなたのビューモデルはビューを表しますが、ビューには表示されません。これは、これらのビューにUI要素が存在してはならないことを意味します。あなたのビューモデルはUIにとらわれず、プロパティとコマンドのみが必要です。

ビューモデルは、UIイベントに依存することなくテスト可能でなければなりません。あなたのビューモデルは、クリック、タップ、または他のイベントについて知りません。

+0

MVVMパターンは私が働きたいと思っている方法ではないと思いますが、カスタムコンポーネントベースフレームワークにxamarinユーティリティを適用することについてどう思いますか?私は、Web開発者には便利だと思います – Danielbahe

+0

最後に、私にとって最良の方法を発見しました。私のビューは、ViewModelのプロパティ(たとえば、テキスト)をUI要素にバインドするだけです。他のクラスやモジュールをナビゲートしたり知ったりするための論理はありません。私のソリューションのすべてのプロジェクトは無関心です。 – Danielbahe

関連する問題