2009-08-27 7 views
1

私はそう..私と一緒にWPFのDataContext

をご負担ください。これは、まさにマスター/詳細シナリオではない、と私は問題を抱えていますなぜ可能性があり、C#とWPFに新しいですしかし、一般的に、私はマスター/ディテールではない2つのデータセットをどのように関連付けるかを考えようとしています。

私はあなたが複数の接点を有する者を考える通常知っている、のは、私が今

1) Person 
ID, FirstName, LastName 

2) Contact 
ID, PhoneNumber 

ための2つのビュー/のviewmodelsを持っているとしましょう、そしてそれはこのようなものになるだろう、それをシンプルに保つために:

が、この例のために、のは、私はつもりな方法を継続させる

Contact : 
ID, PersonID, PhoneNumber 
...

私は別のテーブルを持って、

を持って参加するテーブル、今
PersonID 
ContactID 

、ボブとメアリーの両方が同一の電話番号を持っている場合、ボブは1であると仮定結合テーブル2つのエントリ

1 1 
2 1 

が(ある、メアリーは2であり、555-555-5555問い合わせ用ID 1)私が構築した場合

だから、私は、どのように、

今の人のためのビューとのviewmodel、私は連絡先のためのビューとのviewmodelを構築問題はない 、再び問題はないの構築でありますPersonをマスターとして使用するビュー選択した人物の連絡先の表示のみを制限するには、詳細として連絡しますか?同様に、私がContact#の別のビューを持っていて、その1つの選択された番号に関連付けられた人のリストを見たいと思っています。

おそらく簡単なことですが、わかりません。

または、PersonビューモデルでObservableCollectionを作成し、ContactビューモデルでObservableCollectionを実際に作成する必要がありますか?

ご協力いただければ幸いです。

答えて

0

データベースの概念である多対多の関係は、C#で表現するのが難しいです。これを実装する

一つの方法は次のとおりです。

  1. があなたPersonオブジェクトがその人に属している連絡先オブジェクトのコレクションを公開してもらいます。
  2. 連絡先オブジェクトに、その連絡先情報を共有するPersonオブジェクトのコレクションが公開されていることを確認します。

このようにすると、PersonビューとContactビューを標準のマスター詳細ビューのように操作できます。

関連する問題