2009-08-11 10 views
9

私はWPF MVVMアプリケーションで作業しています。私が気づいていることは、(WPFチームのMVVM ToolkitのDelegateCommandsを介して)コマンドを宣言するだけで、定型的なコードを過度に書く必要があり、プロパティとアタッチされたビヘイビアを追加する必要があることです。書かなければならないボイラープレートのコードの量を減らすための戦略はありますか?添付プロパティ、コマンドなどのMVVM WPFアプリケーションの定型コードを減らす?

ありがとうございます!

+1

「定型句」と考えられるものの例を挙げてください。ある人の定型文は別の人のビジネスロジックです。 –

+0

スニペットを使用して作成します。スニペットは#regionsを作成するので、私はそれをすべて見る必要はありません。 –

答えて

9

個人的には、私はジョシュ・スミスのMVVM Foundation libraryが好きです。彼はRelayCommandというクラスを使っていますが、ツールキットのDelegateCommandとかなり似ています。コマンドを作成し、CanExecuteを実行します。のロジックをラムダ式で実行できます。これは、定型コードの多くを減らすのに役立ちます。

his blogでは、PropertyChangedイベントハンドリングのより面倒な側面を回避するために、一般的なプロパティオブザーバの使用についても説明します。それも同様に検討する価値がある。

誠に申し訳ありませんが、いわゆる「定型化」コードの多くは、アプリケーションに非常に動的で柔軟な基盤を設定しています。小さい、簡単にメンテナンスされたアプリケーションを作成している場合は、"ここにMVVMパターンを適用する必要はありますか?"一方、長寿命で多くのメンテナンスが必要な大規模なアプリケーションを作成している場合は、この定型コードにより、ユーザーは回線を節約できます。

+2

ブログ記事へのリンク:https://joshsmithonwpf.wordpress.com/2009/07/11/one-way-to-avoid-messy-propertychanged-event-handling/ –

1

私が考えることができる最も明白な戦略は、コードスニペットやファイルテンプレートを使用することです。それはコードの行を減らすことはありませんが、少なくともそれは時間を節約します。

自分で作成することもできます(または、Visual Studioに直接インポートすることもできます)。

私はLaurent Bugnionのmvvm light toolkitを個人的に使用しています。私は彼のコードスニペット/ファイルテンプレートを使用するので、時間が大幅に節約できます。私は、人気のあるmvvmツールキットのほとんどに似たものがあると仮定します。

希望すると助かります!

1

私は、INotifyPropertyChangedインターフェイスを介して変更通知を実装するために多くのコードを書いていることがわかりました。これを減らすため、私はPropertyChanged.FodyというNuGetパッケージを見つけました。これはINotifyPropertyChangedをクラスプロパティに本当に簡単に追加できるようにします。

使用方法は次のとおりです。

using PropertyChanged; 

[ImplementPropertyChanged] 
public partial class Order 
{ 
} 

ここで、クラス内のすべてのパブリックプロパティは、プロパティ変更通知を持ちます。これは、エンティティを完全に制御していないDBから最初に生成されたEFクラスに特に便利です。

詳細については、GitHubを参照してください。

関連する問題