Ошибка для вставки PersianDate в сетку данных: невозможно оценить выражение, поскольку текущий поток находится в состоянии переполнения стека

В проекте WPF я получил DataGrid название DG который привязан к запросу в SQL на стороне C#, я пытаюсь конвертировать string MiladiDate в PersianDate. Но ошибка, показанная в заголовке, гласила:

Невозможно оценить выражение, поскольку текущий поток находится в состоянии переполнения стека

Вот код, где я меняю get/ set:

namespace DataModelLayer
{
    using System;
    using System.Collections.Generic;
    using System.Globalization;

    public partial class Vw_DD_MM
    {
        public int MMID { get; set; }

        public string MiladiDate
        {
            get
            {
                DateTime englishDate = DateTime.Parse(MiladiDate);
                PersianCalendar pc = new PersianCalendar();
                return string.Format("{0}/{1}/{2}", pc.GetYear(englishDate), pc.GetMonth(englishDate).ToString("00"), pc.GetDayOfMonth(englishDate).ToString("00"));
            }
            set { }
        }
    }
}

Пожалуйста, смотрите скриншот ошибки.

1 ответ

У вас есть рекурсивный цикл в теле gette. Ты видишь, MiladiDate позвони себе в DateTime.Parse(MiladiDate), Попробуйте что-то вроде этого:

public partial class Vw_DD_MM
{
    public int MMID { get; set; }

    public string MiladiDate { get; set; }

    public string PersianDate
    {
        get
        {
            DateTime englishDate = DateTime.Parse(MiladiDate);
            PersianCalendar pc = new PersianCalendar();
            return string.Format("{0}/{1}/{2}", pc.GetYear(englishDate), pc.GetMonth(englishDate).ToString("00"), pc.GetDayOfMonth(englishDate).ToString("00"));
        }
    }
}

Надеюсь, поможет.

Другие вопросы по тегам