简体   繁体   English

使用实体框架在WPF中的数据网格中显示子记录

[英]Displaying child records in data grid in WPF using Entity Framework

I have two tables named Process and ProcessTriggers . 我有两个名为ProcessProcessTriggers的表。 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM