Ошибка для вставки 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"));
}
}
}
Надеюсь, поможет.