我正在创建一个 WPF 应用程序,允许用户使用CRUD
操作使用Entity Framework
(也使用存储库模式)输入详细信息。
到目前为止,我已经创建了一个允许用户进入Prospect客户端的应用程序。我可以编辑这个Prospect,添加一个新的并且能够轻松删除。
这个Prospect虽然Foreign Key
在另一个名为ProspectMeeting的表中有一个关系,ProspectID
从Prospect表中获取。
当我从中获取Select
Prospect时ListView
,它不会显示所选Prospect的数据。
下图是应用程序当前状态的图像 - 所以希望能更好地理解我想要实现的目标。
在我的存储库中,我使用它来List
使用ProspectID 获取ProspectMeetings;
public List<ProspectMeeting> GetMeetingByProspect(int _ProspectID)
{
using (var context = new DBEntities())
{
return context.Prospects.First(i => i.ProspectID == _ProspectID).ProspectMeetings.ToList();
}
}
在我的ProspectViewModel中,我使用它Observable Collection
从ProspectMeetingViewModel获取数据;
private ObservableCollection<ProspectMeetingViewModel> prospectMeetings = null;
public ObservableCollection<ProspectMeetingViewModel> ProspectMeetings
{
get { return GetProspectMeetings(); }
set
{
prospectMeetings = value;
OnPropertyChanged("ProspectMeetings");
}
}
internal ObservableCollection<ProspectMeetingViewModel> GetProspectMeetings()
{
ProspectMeetingRepository c = new ProspectMeetingRepository();
prospectMeetings = new ObservableCollection<ProspectMeetingViewModel>();
prospectMeetings.Clear();
foreach (DataObjects.ProspectMeeting i in c.GetMeetingByProspect(this.ProspectID))
{
ProspectMeetingViewModel prospectMeeting = new ProspectMeetingViewModel(i);
prospectMeeting.Prospect = this;
prospectMeetings.Add(prospectMeeting);
}
return prospectMeetings;
}
在我的ProspectListViewModel中;
private ProspectListViewModel() : base("")
{
this.ProspectList = GetProspects();
}
private ProspectViewModel selectedProspect = null;
public ProspectViewModel SelectedProspect
{
get
{
return selectedProspect;
}
set
{
selectedProspect = value;
OnPropertyChanged("SelectedProspect");
}
}
private ObservableCollection<ProspectViewModel> prospectList = null;
public ObservableCollection<ProspectViewModel> ProspectList
{
get
{
return GetProspects();
}
set
{
prospectList = value;
OnPropertyChanged("ProspectList");
}
}
internal ObservableCollection<ProspectViewModel> GetProspects()
{
if (prospectList == null)
prospectList = new ObservableCollection<ProspectViewModel>();
prospectList.Clear();
foreach (DataObjects.Prospect i in new ProspectRepository().GetAll())
{
ProspectViewModel c = new ProspectViewModel(i);
prospectList.Add(c);
}
return prospectList;
}
我一直在关注这个链接来帮助我,但我已经陷入困境。就个人而言,当我查看我的代码时,我认为这与存储库没有获取数据有关。但我不太确定。
我希望有人可以建议或帮助我解决这个问题。首先,对不起,如果这是一个很长的问题,其次如果需要添加更多代码,请告诉我,我只添加了我认为合适的数据。
提前致谢 :)。