Databind没有显示数据

时间:2016-03-16 20:13:21

标签: c# mongodb asynchronous mvvm

我正在尝试使用MongoDB作为数据库创建一个wpf应用程序。我正在使用MVVM,在视图模型中,他们有以下构造函数:

public MainViewModel(IDataService dataService)
{
    _dataService = dataService;
    _dataService.GetData(
        (item, error) =>
        {
            if (error != null)
            {
                // Report error here
                return;
            }
            _items = item.ToList();
        });
}

我想要完成的是尝试将_items数据绑定到我的数据表。我看到wpf应用程序打开但我有一个空表,上面的_items为空。以下是界面IDataService

namespace ComplexDemo.Model
{
   public interface IDataService
   {
      Task GetData(Action<DataItem [], Exception> callback);
   }
}

和我的idataservice.GetData功能:

public async Task GetData(Action<DataItem [], Exception> callback)
{
    List<DataItem> items = new List<DataItem>();
    // Use this to connect to the actual data service
    var client = new MongoClient("mongodb://localhost:27017");
    var db = client.GetDatabase("test");
    var collection = db.GetCollection<BsonDocument>("users");

    var list = await collection.Find(new BsonDocument()).ToListAsync();
    foreach(var doc in list)
    {
        var data = new DataItem
        {
            Id = doc.GetElement("_id").Value.AsObjectId.ToString(),
            Name = doc.GetElement("Name").Value.AsString,
            City = doc.GetElement("City").Value.AsString,
            State = doc.GetElement("State").Value.AsString
        };
        items.Add(data);
    }

    callback(items.ToArray(), null);
}

0 个答案:

没有答案