WP8 に MVVM を実装しましたが、ViewModel クラスからのメソッドの呼び出しに問題があります。ViewModel クラスからメソッドを呼び出す場所から App.xaml.cs クラスの一部を次に示します。
private static PrasanjaViewModel viewModel=null;
/// <summary>
/// A static ViewModel used by the views to bind against.
/// </summary>
/// <returns>The MainViewModel object.</returns>
public static PrasanjaViewModel ViewModel
{
get
{
// Delay creation of the view model until necessary
if (viewModel == null)
{
viewModel = new PrasanjaViewModel();
viewModel.LoadData();
}
return viewModel;
}
}
そして、これが私の PrasanjaViewModel クラスから実装された LoadData() メソッドです。
public void LoadData()
{
PrasanjaViewModel prasanje1 = GetPrasanje();
IsDataLoaded = true;
}
public PrasanjaViewModel GetPrasanje()
{
var prasanje = new PrasanjaViewModel();
SQLiteConnection db = new SQLiteConnection(App.DB_PATH);
var query = db.Table<Prasanja>().Where(x => x.id == 3);
var result = query.ToList();
foreach (var item in result)
{
prasanje.id = item.id;
prasanje.Tekst = item.Tekst;
}
return prasanje;
}
したがって、メソッド GetPrasanje() は適切にオブジェクトprasanjeを返します。そして、prasanje1はきちんと返されます。しかし、* return viewModel *が実行されると、NULL が返されます。ここで問題がどこにあるのかわかりません。