/ / WPFはVSコンバータを起動します - wpf、C#-4.0、トリガ、コンバータ

WPFはVSコンバータを起動します - wpf、C#-4.0、トリガ、コンバータ

パフォーマンスを賢明に使う方が良いでしょうか? トリガとバイスの比較にコンバータの制限。 クラスの爆発を引き起こす可能性があるので、コンバータの使用を制限しますか?

回答:

回答№1は5

あなたがTDD開発をしているなら、それはコンバータを使うより良い選択でしょう。

複雑なビジネスロジックやカスタムがない場合トリガーのために適用されるロジックが次に適用されます。コンバータに関するもう一つのことは、Laurent Bugnion(MVVM Lightの作成者)によれば、コンバーターの使用に伴うパフォーマンスの低下です。

あなたはこの投稿からのパフォーマンスヒットについてより多くの洞察を見ることができます。 DataTriggerとコンバータのパフォーマンスを賢明に比較したデータバインディング

トリガを使用するタイミングと、このポストのコンバータをいつ使用するかについての詳細を知ることができます。 私はWPFコンバータまたはトリガを使用する必要がありますか?

決定は、あなたが従う、または従うつもりの開発アプローチに基づいて行うことができます。私はあなたのビューモデルを「WPF Viewmodel」コンセプトでラップする方が好きです。


回答№2の場合は0

同様のタイプの出力に対しては、 Triggers に比べてパフォーマンスが優れています Converter。 しかし、 conveters コンバータコードの単体テストを書くことができるので、開発をTDDにしたい場合は、お勧めです。 Converters トリガーを使用して時には不可能な複雑な変換を書き込むことができます。 複合コンバージョンの場合 Converters 一連のコードを書くのではなく、コードを減らすことができます Triggers.


回答№3の場合は0

ほとんどのシナリオで、トリガは任意のコンバータと同じ作業を実行できますが、コンバーターはカスタム/ビジネスロジックを持つことができます。

トリガーの1つの制限は、DataTriggersはUIエレメントのプロパティのみを変更できます。したがって、ViewModelsプロパティを、コンバーターが勝つトリガーで更新することはできません。ConvertBackメソッドを覚えておいてください。

つまり、短いトリガーではOneWay操作しか実行できませんが、コンバーターはTwoWay操作を実行できます