私はWPF MVVM Appを持っていますが、ViewModelを汎用的にしたいと思います。アプリケーションが行うと思われることは、コンパイル時に取得しているデータの種類を知らなくても、データを取り込んでCRUD操作を行うことです。だから私はこのように私のViewModelを宣言:汎用ViewModelの使用
public class GenericViewModel<T> where T : class
{
private void ConstructorBase()
{
Type theType = typeof(T);
Properties = theType.GetProperties().ToList();
}
public GenericViewModel(DbContext _dbContextInsert) //pravi novi repository na osnovu DbContexta
{
ConstructorBase();
_R = new RepositoryGlobal<T>(_dbContextInsert);
}
public T newT { get; set; }
public T selectedT { get; set; }
public List<PropertyInfo> Properties { get; set; }
private RepositoryGlobal<T> _R;
}
さて、あなたはそれの内部を見る無視のほとんどすべてが、唯一重要なことは、コンストラクタに達したことはありませんということです。私はこのようなメインウィンドウのためのDataContextとして、このビューモデルを設定します。
InitializeComponent();
this.DataContext = new GenericViewModel<Person>(new PersonDbContext());
しかし、私はViewModelにのコンストラクタ内のブレークポイントを入れたときに、プログラムが停止れることは決してありません。 アイデア
GenericViewModelまたはPersonDbContextのPersonDbContextコンストラクタまたは静的フィールドがクラッシュしてクラスを破損している可能性があります。 – nkoniishvt
少なくともブレークポイントに当たらない理由はありません。あなたはthis.DataContextにブレークポイントを置こうとしました= ...そしてステップスルー? – sondergard
InitializeComponentでブレークポイントを設定するとどうなりますか?どのようなプラグインも有効です(例えば、DIコンテナ用)?たぶんあなたは別のctorを使用しています。 –