【发布时间】:2014-06-10 21:18:58
【问题描述】:
我有两个名为 Process 和 ProcessTriggers 的表。 ProcessTriggers 指的是Process 表。并且需要创建一个屏幕来显示Process 以及与Process 相关的ProcessTrigger。我使用实体框架创建了数据对象,我的类看起来像。
public partial class Process
{
public Process()
{
this.ProcessTriggers = new ObservableCollection<ProcessTrigger>();
}
public int ID { get; set; }
public int WorkflowID { get; set; }
public string Name { get; set; }
public bool IsBatch { get; set; }
public Nullable<System.DateTime> ModifiedOn { get; set; }
public virtual ObservableCollection<ProcessTrigger> ProcessTriggers { get; set; }
}
我的视图模型看起来像..
public class ProcessViewModel : ViewModel<Process>
{
private RelayCommand saveCommand;
private RelayCommand cancelCommand;
public ProcessViewModel()
{
using(var context = new PACEContext())
{
this.Entity = context.Processes.FirstOrDefault(i => i.ID == 1);
IsInEditMode = true;
}
}
}
我将这些 viewModel 绑定到我的视图,实体属性已正确绑定,但 ProcessTriggerCollection 未绑定到数据网格..
<DataGrid ItemsSource="{Binding Entity.ProcessTriggers}" AutoGenerateColumns="True">
</DataGrid>
我刚开始学习 WPF、MVVM 和 Entity 框架。有人可以帮忙吗?
【问题讨论】:
-
您是否将视图的 DataContext 绑定到 ViewModel 的实例?
-
是否启用了延迟加载?如果没有,那么您必须急切加载导航属性。您是否确认 Entity.ProcessTriggers 不为空?
-
您是否在调试器输出窗口中看到任何绑定错误消息?
-
嗨,如果我调试并看到集合中的记录,那么网格会加载记录。
标签: c# wpf entity-framework mvvm