Проблемы с привязкой свойства навигации Само-отслеживающегося объекта WPF
У меня есть приложение WPF, использующее данные с использованием Entity Framework 4 и Self-Tracking Entities. В котором у меня есть окно с двумя элементами управления, одно из которых показывает часть "Подробности" объекта, используя ContentControl и шаблоны из словаря объединенных ресурсов. Другой с ListBox групп, к которому принадлежит рассматриваемый объект, и ComboBox доступных групп, к которым он может принадлежать, с кнопкой, связанной с помощью команды для элемента управления, чтобы добавить / удалить элементы из связанной коллекции групп на основе SelectedItem ComboBox, Все это связано DependencyPropertys.
В моем окне у меня есть DP для объекта, EditedItem, который мы редактируем, и свойство только для чтения со списком групп групп, к которым оно может принадлежать, и привязка его к моим элементам управления через XAML.
ТАК....
Если я создаю новый экземпляр одной из моих сущностей, устанавливаю ее свойства так: (На самом деле это точный код)
Employee employee = Context.CreateObject<Employee>();
employee.Name = "Joe Nobody's Brother Steve";
employee.Active = true;
employee.Username = "snobody";
Group group = Context.CreateObject<Group>();
group.Name = "Losers";
group.DisplayName = "Spirit Squad";
employee.Groups.Add(group);
И установите его как EditedItem моего окна, он работает БЕСПЛАТНО!
Однако, если я получу эту же сущность из моей базы данных, список групп будет пуст. Есть идеи?
1 ответ
Оказывается, я сделал ошибку еще где: мне нужно было позвонить:
ObjectContext.LoadProperty(entity, navigationProperty);
на моих навигационных свойствах, чтобы они заполнились. Я думаю, что это как-то связано с тем, что все мои объекты получены из основного объекта, и тот факт, что я выбираю их, используя OfType в ObjectSet основного объекта. Или это может быть поведение, но я думаю, что столкнулся бы с этим раньше.
Но эй, я возьму на себя работу, и это достаточно легко интегрировать в мои методы выбора и свойства.
Мел это до неведения EF4.