2011-01-13 9 views
1

Datagrid(またはList)とMVVMパターンを使用して、種類のAddressbook/Contactbookを実装したいと思います。MVVMを使用してそのようなアプリケーションを実装する方法

2-3のメインフィールド(名前の姓など)で表示される連絡先のリストがあるOutlook/Thunderbirdのようなもので、連絡先をダブルクリックすると新しいモーダルが表示されますこの特定の連絡先のすべての詳細を表示するボックス。

実際、私のシナリオは顧客、注文および製品を管理するアプリケーションに似ています。ユーザーはメインビューとして、3つのタブを介して表示された3つのデータグリッド、1つは顧客のリスト、1つは注文、もう1つは製品を示します。
次に、各ビューで、(追加のダイアログを開くことによって)追加すること、オブジェクトを削除すること(ある条件の下で)を行うことができます。 各オブジェクトは別のオブジェクトとの関係を持ちます。 たとえば、Customerインスタンスでは、その顧客の注文リストと、注文ごとに注文された製品のリストがあります。

2週間後から、私はネット上のMVVMパターンについて多くのことを読んでいますが、どういうわけか、私は混乱します。これまでのところ、私はこのようなサンプルを見つけることができました。 (おそらく、私は間違って検索しましたか?)

私はMVVMパターンを使ってこのようなものを実装したいと思います。
どうすればそのようなアプリケーションを整理できますか?
誰かに助けてもらえますか?
サンプルはどこかにありますか?

あなたの助けになる前にThx。フレッド

答えて

0

This article about Catel

は "個人アプリケーション" が含まれます。それは非常に簡単ですが、あなたは連絡先のリストを管理することができます。たぶんそれはあなたの出発点です。

+0

こんにちは、それは/私は少なくとも、良い見えます私は私にインスピレーションを与えます。もっと深く勉強して、あなたのフレームワークを使うか、単にアイデアを拾いましょうか?どうも! – Fred

2

1)This videoはMVVMの基本を理解するのに役立ちました。

2)SOで "MVVM Master Detail"を検索します。

3)「)一定の条件の下で(オブジェクトの削除」:コマンドとリレーのコマンドについて読む:

private RelayCommand _delete; 
public ICommand Delete 
{ 
    get 
    { 
     return _delete ?? (_delete = new RelayCommand(action => DoDelete(), condition => CanDelete)); 
    } 
} 

private bool CanDelete 
{ 
    get { return true; // your condition } 
} 

4)「次に、各ビューで、あなたは)余分なダイアログを開いて(追加することができます」 "各オブジェクトは他のオブジェクトとの関係を持っています" - 他のViewModelに変更を知らせる必要があります。典型的な解決策は、Mediatorパターンを使用することです。以下の記事を参照してください:

http://sachabarber.net/?p=477

http://marlongrech.wordpress.com/2008/03/20/more-than-just-mvc-for-wpf/

http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx

編集:ちょうどソート、フィルタリングして、リストのナビゲーションを備えた別の素晴らしいと簡単なMVVMサンプルを見つけました:

http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/

関連する問題