C# 传递一个列表,该列表包含在wpf中不工作的命令执行时的嵌套日期时间列表

C# 传递一个列表,该列表包含在wpf中不工作的命令执行时的嵌套日期时间列表,c#,wpf,xaml,C#,Wpf,Xaml,我对正在进行的Wpf项目有一个相当奇怪的要求。我希望在用户保存来自另一个网格的数据时,能够使用一系列DateTime字段构建XamDataGrid。目前,我看到第二个XamDataGrid及其字段,但在执行保存数据的命令时,尽管我可以在调试器中看到生成了绑定到第二个XamDataGrid的第二个列表,但第二个XamDataGrid上没有显示任何内容 我将发布我的大部分代码,以便有人可以帮助我: 作为第一个数据网格的第二个数据网格的xaml工作正常: <igDP:XamDataGrid.Fi

我对正在进行的Wpf项目有一个相当奇怪的要求。我希望在用户保存来自另一个网格的数据时,能够使用一系列DateTime字段构建XamDataGrid。目前,我看到第二个XamDataGrid及其字段,但在执行保存数据的命令时,尽管我可以在调试器中看到生成了绑定到第二个XamDataGrid的第二个列表,但第二个XamDataGrid上没有显示任何内容

我将发布我的大部分代码,以便有人可以帮助我:

作为第一个数据网格的第二个数据网格的xaml工作正常:

<igDP:XamDataGrid.FieldLayouts>
                <igDP:FieldLayout>
                    <igDP:Field Label="ID" Name="id" Width="50"></igDP:Field>
                    <igDP:Field Label="Descripcion" Name="descripcion" Width="400"></igDP:Field>
                    <igDP:UnboundField Label="Fechas de Pago" Name="cadaPago" Width="400">     
                    </igDP:UnboundField>
                    <igDP:Field Label="Colores" Name="Colores" Visibility="Collapsed"  />
                </igDP:FieldLayout>
            </igDP:XamDataGrid.FieldLayouts>
        </igDP:XamDataGrid>
`

我的viewmodel中第二个网格的代码:

 public List<ClaseFechasPago> ListaFechasPago
        {
            get { return listaFechasPago; }
            set { listaFechasPago = value; notifyChanges("ListaFechasPago"); }
        }

public void PintarFechas(List<ClaseFechasPago> f)
    {

        ListaFechasPago.Clear();

        foreach (ClaseFechasPago fecha in f)
        {
            fecha.cadaPago = new List<DateTime>();
            for (int i = 0; i < fecha.numPagos; i++)
            {
                fecha.cadaPago.Add(new DateTime());
            }
            ListaFechasPago.Add(fecha);
        }
    }

    public vmCursos_y_Diplomados()
    {
        Comando = new cmdCursos_y_Diplomados();
        Comando.ViewModel = this;
        ListaCursosyDiplomados = new List<ClaseCursosyDiplomados>();
        ListaFechasPago = new List<ClaseFechasPago>();
        this.cargarDatos();
        this.PintarFechas(ListaFechasPago);
    }
现在在命令上,我正在执行以下操作

public void Execute(object parameter)
    {
        List<CatEntidadesEducacionContinua> cursos = new List<CatEntidadesEducacionContinua>();
        List<ClaseFechasPago> fechas = new List<ClaseFechasPago>();

        foreach (ClaseCursosyDiplomados C in ViewModel.ListaCursosyDiplomados.Where(t=>t.Colores==1).ToList())
        {
            cursos.Add(new CatEntidadesEducacionContinua
            {
             IdEntidadEducacionContinua = C.id, Coordinador=C.coordinador, Descripcion=C.descripcion, FechaUltimoCambio = DateTime.Now,
             FechaInicio = C.fechaInicio, FechaTermino=C.fechaTermino, Precio=C.precio, NumeroDePagos=C.numeroDePagos, FechasPagos=C.fechasPagos, Inhabilitado=C.inhabilitado,
            });
            if (C.numeroDePagos > 1)
            {
                ClaseFechasPago f = new ClaseFechasPago();
                f.numPagos = C.numeroDePagos;
                f.descripcion = C.descripcion;
                f.id = C.id;
                fechas.Add(f);
            }

        }

        System.Windows.MessageBox.Show(new Entidades.MetodoCursos_y_Diplomados().SetEntidadEContinua(cursos), "Entidades de Educación Continua", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information);
        //System.Windows.MessageBox.Show(new Entidades.MetodoFechasPago().pintarFechasPago
        ViewModel.cargarDatos();
        ViewModel.PintarFechas(fechas);
    }
但正如我所说,它不起作用,执行结果是以下屏幕截图,其中第二个网格没有填充:

哦,我之前也忘了显示自定义类的代码,绑定到XamDataGrid的列表由以下部分组成:

public class ClaseFechasPago : Utils.PropertyChange
{
    private List<DateTime> _cadaPago;

    public List<DateTime> cadaPago
    {
        get { return _cadaPago; }
        set
        {
            _cadaPago = value;
            if (EntroPrimeraVez)
            {
                Colores = 1;
            }
        }

    }
    private int? _numPagos;

    public int? numPagos
    {
        get { return _numPagos; }
        set
        {
            _numPagos = value;

            if (EntroPrimeraVez)
            {
                Colores = 1;
            }
        }
    }
    private int _id;

    public int id
    {
        get { return _id; }
        set
        {
            _id = value;
        }
    }
    private string _descripcion;

    public string descripcion
    {
        get { return _descripcion; }
        set { _descripcion = value; }
    }

    private int _Colores;
    private bool _EntroPrimeraVez;
    public bool EntroPrimeraVez
    {
        get { return _EntroPrimeraVez; }
        set { _EntroPrimeraVez = value; notifyChanges("EntroPrimeraVez"); }
    }

    public int Colores
    {
        get { return _Colores; }
        set { _Colores = value; notifyChanges("Colores"); }
    }

}

事实证明,我唯一需要做的就是将列表作为列表显式传递,如下所示: ListaFechasPago=ListaFechasPago.ToList 然而,在构建日期字段的方式中,我似乎有一个概念上的错误。我最终构建了相同条目所需的尽可能多的注册表,并为每个注册表绑定了一个DateTime字段,如下所示:

public static List<ClaseFechasPago> PintarFechas(ClaseFechasPago f)
    {

        List<ClaseFechasPago> ListaFechasPago = new List<ClaseFechasPago>();

        for (int i = 0; i < f.numPagos; i++)
        {

            ClaseFechasPago fecha = new ClaseFechasPago();

            fecha.cuotaInscripcion = 0M;
            fecha.Inscripcion = true;
            fecha.fechaPago = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            fecha.id = f.id;
            fecha.descripcion = f.descripcion;
            fecha.numPagos = f.numPagos;
            fecha.Colores = f.Colores;
            fecha.EntroPrimeraVez = f.EntroPrimeraVez;
            ListaFechasPago.Add(fecha);
        }

        return ListaFechasPago;
        //ListaFechasPago = ListaFechasPago.ToList();
    }
 private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        this.DataContext = new vmCursos_y_Diplomados();
    }