如何将数据库内容添加到ViewModel中声明的变量中

时间:2019-12-14 17:00:28

标签: c# xamarin

我想将数据库中的内容添加到在视图模型中声明的变量中。我的目标是将数据库中的数据显示到“查看”页面中。我想知道我该怎么做,因为我真的很想使用Model-View-Viewmodel方法。

这是我的ViewModel代码:

using System.Text;
using WishListProject.Models;
using Xamarin.Forms;

namespace WishListProject.ViewModels
{
  class GameListViewModel
  {
    public ObservableCollection<string> Games { get; set; }

    private ListView _listView;
    string _dbPath = 
    Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), 
    "myWishList.db3");

    public GameListViewModel()
    {
        Games = new ObservableCollection<string>();

        var db = new SQLiteConnection(_dbPath);

        _listView = new ListView();
        _listView.ItemsSource = db.Table<Game>().OrderBy(x => x.GameNaam).ToList();

        Games.Add(????);
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您不应在ListView中声明ViewModelListView是一个UI元素,属于View。 Games是ViewModel属性,因此您可以使用数据绑定在视图中分配它

ObservableCollection<Game> Games { get; set; }

...
var db = new SQLiteConnection(_dbPath);

Games = new ObservableCollection<Game>(db.Table<Game>().OrderBy(x => x.GameNaam).ToList());