مجموعه بسیار جالبی است. و خیلی ممنون از اینکه اون رو به اشتراک گذاشتید.
من در کنترل FADatePicker یک مشکل با کالچر en-GB داشتم. مثلا برای تاریخ 05/06/2006 هروقت که روی دکمه کناری کلیک میکردم تا MonthView رو نمایش بده تاریخ تغییر میکرد به 06/05/2006 یعنی جای ماه و روز عوض میشد. و مجدد بالعکس. (در انگلیسی (en-GB) فرمت به این شکل هست: dd/MM/yyyy ولی در آمریکایی (en-US) به این شکل: MM/dd/yyyy یعنی جای ماه و روز متفاوت هست و مشکل ساز میشه.)
هنگام تبدیل DateTime به String باید Culture هم توجه کرد. ظاهرا شما برای تبدیلها در یکجا از InvariantCulture استفاده کردهاید و در جای دیگر از کالچر کنونی Thread (که به طور پیشفرض این هست مگر اینکه هنگام تبدیل یک کالچر خاص ذکر شود.) من با تغییر این بخش از کد در FADatePicker مشکلم برطرف شد:
public void UpdateTextValue()
{
if (mv.MonthViewControl.IsNull)
{
Text = FALocalizeManager.GetLocalizerByCulture(Thread.Cur rentThread.CurrentCulture).GetLocalizedString(Stri ngID.Validation_NullText);
}
else
{
if (mv.MonthViewControl.DefaultCulture.Equals(mv.Mont hViewControl.PersianCulture))
{
Text = ((PersianDate)SelectedDateTime).ToString(IncludesT ime, IncludesSecond);
}
else
{
if (IncludesTime && IncludesSecond)
Text = SelectedDateTime.ToString("G", Thread.CurrentThread.CurrentCulture);
else if (IncludesTime && !IncludesSecond)
Text = SelectedDateTime.ToString("g", Thread.CurrentThread.CurrentCulture);
else
Text = SelectedDateTime.ToString("d", Thread.CurrentThread.CurrentCulture);
}
}
}
اون قرمزهای قبل این بودند:
mv.MonthViewControl.DefaultCulture
چرا هر جا که کالچر غیر از fa-IR و یا ar-SA بوده از InvariantCulture استفاده کردهاید؟
باز هم من زیاد کد رو بررسی نکردم. اگر اشتباه میکنم بفرمایید.