2012-04-03 4 views
0

私はまだWPFの新機能ですが、インターネット上のすべてのリソースのおかげで、かなり良い(imho)プレゼンテーションプログラムを作成することができました。私がプログラムを書き始める前に、私はMVVMの方法論を見ていましたが、私のプログラムがそれほど大きくなるのを予見しませんでした。あまり詳しく説明しなくても、リストボックスにはプロパティのリストが埋め込まれています。これは自分のSQL CEデータベース(v4.0)に直接バインドされています。つまり、自分のプロパティに変更が加えられたときにいつでもリストボックスを更新する必要があります。 Orginallyこれは問題ではなかったが、今私はドラッグアンドドロップを介して再配置を許可したいので、私はこれを行うために観察可能なコレクションのいくつかのフォームを実装する必要があると信じています。申し訳ありませんが、私が集めたものから、データベースに直接オブジェクトを並べ替えることはできません(またはそれは賢明ではありません)。既存のプロジェクトにMVVMを実装する

私の問題は、永続性のために既存のデータベースを使用しているオブザーバブルコレクションをアプリケーションに実装する方法です。私は、可能な限り、関係する仕事について心配していません。多分部分クラスを使うことができますか?私がお勧めしたい

乾杯

+0

実際にデータベースからリストを作成する場所とバインディング(存在する場合)のコードスニペットを投稿してください。 –

+0

この質問のタイトルは質問される質問とは関係ありません。 ListBoxをObservableCollectionにバインドすることは、MVVMとは関係ありません。コードビハインドにロジックを組み込むのと同じように、簡単に、あるいはより簡単に行うことができます。 – kevev22

答えて

1

いずれかカリバーンマイクロまたはMVVM - ライトを見ています。私は個人的にCMを使っています。

私はBindableCollection(CMのObservableCollection)にListboxをバインドする方法を示すビットバケットに持ってsample WPFアプリケーションに追加します。 BindableCollectionMyPropertiesを入力するための更新ボタンがあります。

CMはあなたのためにいくつかの仕事をしているので、コードにあまりないです。私はdocsを通して読むことをお勧めします、彼らは少し長いが、それだけの価値がある。

あなたの場合は、あなたのsqlce dbからコレクションを取り込みます。プロパティの順序が重要かどうかはわかりません。ドラッグアンドドロップで並べ替えることができ、オーダーを永続化したい場合は、同様に実行できます。

ListBoxのプロパティが変更された場合、その変更はListBoxにバインドされたコレクションに反映されます。あなたは、いつDBにそれらのchagnesを永続化するかを決定する必要があります。

関連する問題