Я настроил базу данных на MongoLab, которая запрашивается и анализируется в модели. Коллекция в этой модели, в свою очередь, привязана к сетке данных. Но когда я запрашиваю базу данных, единственными данными, отображаемыми в сетке, является идентификатор объекта для документа.
Чтобы отладить проблему, я инициализировал список постоянными данными для каждого поля, и привязка работает, заполняя каждое поле в сетке.
Что затем заставило меня проверить, как я сопоставляю данные с моделью.
Затем я просмотрел содержимое коллекции Observable, которая возвращается из запроса сервера.
Это показало, что все данные возвращаются, но все поля модели пусты. Вместо этого создается массив клиентов, а поля заполняются в отдельных объектах клиентов.
Кто-нибудь знает, как я могу отладить это дальше?
Сначала я проверил содержимое коллекции, возвращенное из запроса. Который показывает пустые поля модели и массив клиентов:
Затем я проверил содержимое массива customers Customer (которые заполнены):
Документ JSON определяется в MongoLab, а затем сопоставляется с CustomerCollection в приложении CustomerModel:
http://hastebin.com/ipatatoqif.pl
Модель клиента:
public class CustomerModel : INotifyPropertyChanged
{
private ObjectId id;
private string firstName;
private string lastName;
private string email;
[BsonElement]
ObservableCollection<CustomerModel> customers { get; set; }
/// <summary>
/// This attribute is used to map the Id property to the ObjectId in the collection
/// </summary>
[BsonId]
public ObjectId Id
{
get
{
return id;
}
set
{
id = value;
}
}
[BsonElement("firstName")]
public string FirstName
{
get
{
return firstName;
}
set
{
firstName = value;
RaisePropertyChanged("FirstName");
}
}
[BsonElement("lastName")]
public string LastName
{
get
{
return lastName;
}
set
{
lastName = value;
RaisePropertyChanged("LastName");
}
}
[BsonElement("email")]
public string Email
{
get
{
return email;
}
set
{
email = value;
RaisePropertyChanged("Email");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Это данные, которые отображаются в сетке, только ObjectID в настоящее время:
а>
а>