Привязка данных Silverlight не работает - PullRequest
1 голос
/ 24 сентября 2011

Ниже вы можете увидеть часть моих определений классов:

public class Package {
  public int PackageId { get; set; }
  public string Name { get; set; }
}

public class Member {
  public int MemberId { get; set; }
  public string DisplayName { get; set; }
}

public class MemberPackage {
  public int PackageId { get; set; }
  public int MemberId { get; set; }
  public DateTime DateSold { get; set; }

  public Member Member { get; set; }
  public Package Package { get; set; }
}

Это классы моделей EF 4.Я извлекаю объекты MemberPackage из служб WCF RIA и связываю их с DataGrid в пользовательском интерфейсе.Чтобы показать имена пакетов, я использую синтаксис привязки, показанный ниже:

<sdk:DataGridTextColumn Header="Package Name" Binding="{Binding Path=Package.Name}" />
<sdk:DataGridTextColumn Header="Date Sold" Binding="{Binding DateSold}" />

В столбце Имя пакета ничего не отображается, но я вижу значения Дата продажи.Что здесь происходит, разве это не должно сработать?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 24 сентября 2011

Просто удалите Path= и получите это:

<sdk:DataGridTextColumn Header="Package Name" Binding="{Binding Package.Name}" />

Вам не нужно указывать путь.

Если это не сработает, вам необходимо убедиться, что Package член MemberPackage имеет атрибут [Include] в определении на стороне сервера. Это обеспечит сериализацию всей иерархии для клиента. Сначала я этого не предлагал, поскольку предполагаю, что ваш код был отредактирован.

0 голосов
/ 04 октября 2011

Проблема может заключаться в том, что когда вы получаете MemberPackages в сервисе / фабрике, убедитесь, что у вас есть .Include («Пакет»), как показано ниже:

return this.ObjectContext.MemberPackages
                .Include("Package");

Это должно вернуть детали пакетакак часть MemberPackage, а затем ваша привязка к Package.Name должна работать.

0 голосов
/ 24 сентября 2011

Это как-то связано с контекстом данных представления - вы уверены, что Package является свойством вашей модели представления (контекст данных), и модели реализуют INotifyPropertyChanged?

...