この状況に適したソリューションは何か聞きたいと思います。WPF MVVM - データベースからモデルを作成する
私はWPFアプリCaliburn.Microフレームワークで使用します。私はSQL Compact DBにアクセスする必要があります。 DBアクセスでは、LINQ TO SQLを使用します。
たとえば、私はcomboBoxコントロールまたはlistBoxコントロールを持っています。 DBからこれらのコントロールの読み込み項目が必要です。
私はDBへのアクセスで簡単なクラスを作成します。
このクラスにMEFを挿入してモデルクラスを表示します。 コンボボックスへのアイテムの読み込み時に、ビューモデルクラスのDBアクセス時にクラスからのメソッドを使用しています。
[Export(typeof(ILogOnViewModel))]
public class LogOnViewModel : Screen, ILogOnViewModel,
IPartImportsSatisfiedNotification
{
[Import]
internal IDbManager DbManager { get; set; }
//this property is bind on listbox or comboBox
public BindableCollection<Spirit_Users> SpiritUsers
{
get { return _spiritUsers; }
set
{
_spiritUsers = value;
NotifyOfPropertyChange(() => SpiritUsers);
}
}
private void ConfigureSpiritUsers()
{
//load items from comboBox or listBox
var users = SettingsDbManager.LoadSpiritUsers();
//add to the collection which is binded on control in view
if (users.Count > 0)
{
foreach (var user in users)
{
SpiritUsers.Add(user);
}
}
}
protected override void OnActivate()
{
ConfigureSpiritUsers();
base.OnActivate();
}
}
私の解決策は正しいとMVVVMとscenarion WPFアプリの中で最も適しているかどうかはわかりません。
また、ビューモデルクラスからDBへのCRUD操作を作成する必要があります。たとえば、オブジェクト/データをデータベースに保存します。
ありがとうございました。
設定DbManagerは間違ってDbManagerですので、修正します。はいビューモデルクラスは常に同じDBスキームで動作します。さて、私はアドバイスを実装します、ありがとう。 –