[英]Displaying child records in data grid in WPF using Entity Framework
I have two tables named Process and ProcessTriggers . 我有两个名为Process和ProcessTriggers的表。 ProcessTriggers referring Process table.And need to create a screen to diplay Process as well as the ProcessTrigger related to the Process. ProcessTriggers引用Process表。并且需要创建一个屏幕来显示Process以及与该Process相关的ProcessTrigger。 I have created data objects using entity framework and my classes look like. 我已经使用实体框架创建了数据对象,并且我的类看起来像。
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; }
}
And my view model look like.. 我的视图模型看起来像..
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;
}
}
}
I am binding these viewModel to my View, Entity properties are bound correctly, but the ProcessTriggerCollection is not binding to datagrid .. 我将这些viewModel绑定到我的View,正确绑定了Entity属性,但是ProcessTriggerCollection没有绑定到datagrid ..
<DataGrid ItemsSource="{Binding Entity.ProcessTriggers}" AutoGenerateColumns="True">
</DataGrid>
I juts started learning WPF, MVVM and Entity framework.Can any one help.? 我开始学习WPF,MVVM和Entity框架。有谁能帮上忙?
I understand the Process have a ObservableCollection of other class called ProcessTriggers. 我知道Process有一个名为ProcessTriggers的其他类的ObservableCollection。
Why you don't create a ObservableCollection and binding this? 为什么不创建ObservableCollection并将其绑定呢?
private ObservableCollection<ProcessTrigger> _listProcessTriggers;
public ObservableCollection<ProcessTrigger> ListProcessTriggers
{
get { return _listProcessTriggers; }
set { _listProcessTriggers= value; RaisePropertyChanged("ListProcessTriggers"); }
}
public ProcessViewModel()
{
using(var context = new PACEContext())
{
this.Entity = context.Processes.FirstOrDefault(i => i.ID == 1);
ListProcessTriggers = Entity.ProcessTriggers;
IsInEditMode = true;
}
}
And In Xmal Binding 并且在Xmal绑定中
<DataGrid ItemsSource="{Binding ListProcessTriggers}" AutoGenerateColumns="True />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.