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

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

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

Вот код, в котором я изменяю get /набор:

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 Ответ

0 голосов
/ 04 октября 2018

У вас есть рекурсивный цикл в теле 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"));
        }
    }
}

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

...