feat: fix context null after syncing.
This commit is contained in:
@@ -36,6 +36,11 @@ public sealed class CalendarContext(int? year = null, int? month = null, int? st
|
|||||||
{
|
{
|
||||||
month++;
|
month++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (month is null)
|
||||||
|
{
|
||||||
|
month = 1;
|
||||||
|
}
|
||||||
return new CalendarContext(year, month, StartYear, EndYear);
|
return new CalendarContext(year, month, StartYear, EndYear);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,6 +57,10 @@ public sealed class CalendarContext(int? year = null, int? month = null, int? st
|
|||||||
{
|
{
|
||||||
month--;
|
month--;
|
||||||
}
|
}
|
||||||
|
if (month is null)
|
||||||
|
{
|
||||||
|
month = 1;
|
||||||
|
}
|
||||||
return new CalendarContext(year, month, StartYear, EndYear);
|
return new CalendarContext(year, month, StartYear, EndYear);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,9 @@ public class CalendarView : TemplatedControl
|
|||||||
{
|
{
|
||||||
Mode = CalendarViewMode.Decade;
|
Mode = CalendarViewMode.Decade;
|
||||||
var range = DateTimeHelper.GetDecadeViewRangeByYear(ContextDate.Year!.Value);
|
var range = DateTimeHelper.GetDecadeViewRangeByYear(ContextDate.Year!.Value);
|
||||||
|
_dateContextSyncing = true;
|
||||||
ContextDate = ContextDate.With(startYear: range.start, endYear: range.end);
|
ContextDate = ContextDate.With(startYear: range.start, endYear: range.end);
|
||||||
|
_dateContextSyncing = false;
|
||||||
UpdateYearButtons();
|
UpdateYearButtons();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -253,7 +255,9 @@ public class CalendarView : TemplatedControl
|
|||||||
{
|
{
|
||||||
Mode = CalendarViewMode.Century;
|
Mode = CalendarViewMode.Century;
|
||||||
var range = DateTimeHelper.GetCenturyViewRangeByYear(ContextDate.StartYear!.Value);
|
var range = DateTimeHelper.GetCenturyViewRangeByYear(ContextDate.StartYear!.Value);
|
||||||
|
_dateContextSyncing = true;
|
||||||
ContextDate = ContextDate.With(startYear: range.start, endYear: range.end);
|
ContextDate = ContextDate.With(startYear: range.start, endYear: range.end);
|
||||||
|
_dateContextSyncing = false;
|
||||||
UpdateYearButtons();
|
UpdateYearButtons();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -442,7 +446,9 @@ public class CalendarView : TemplatedControl
|
|||||||
if (_yearGrid is null) return;
|
if (_yearGrid is null) return;
|
||||||
SetCurrentValue(ModeProperty, CalendarViewMode.Decade);
|
SetCurrentValue(ModeProperty, CalendarViewMode.Decade);
|
||||||
var range = DateTimeHelper.GetDecadeViewRangeByYear(ContextDate.Year!.Value);
|
var range = DateTimeHelper.GetDecadeViewRangeByYear(ContextDate.Year!.Value);
|
||||||
|
_dateContextSyncing = true;
|
||||||
ContextDate = ContextDate.With(startYear: range.start, endYear: range.end);
|
ContextDate = ContextDate.With(startYear: range.start, endYear: range.end);
|
||||||
|
_dateContextSyncing = false;
|
||||||
UpdateYearButtons();
|
UpdateYearButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -341,14 +341,14 @@ public class DateRangePicker : DatePickerBase
|
|||||||
|
|
||||||
private void OnTextBoxGetFocus(object sender, GotFocusEventArgs e)
|
private void OnTextBoxGetFocus(object sender, GotFocusEventArgs e)
|
||||||
{
|
{
|
||||||
if (_startCalendar is not null)
|
if (_startCalendar is not null && _startCalendar?.Mode == CalendarViewMode.Month)
|
||||||
{
|
{
|
||||||
var date = SelectedStartDate ?? DateTime.Today;
|
var date = SelectedStartDate ?? DateTime.Today;
|
||||||
_startCalendar.ContextDate = new CalendarContext(date.Year, date.Month);
|
_startCalendar.ContextDate = new CalendarContext(date.Year, date.Month);
|
||||||
_startCalendar.UpdateDayButtons();
|
_startCalendar.UpdateDayButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_endCalendar is not null)
|
if (_endCalendar is not null && _endCalendar?.Mode == CalendarViewMode.Month)
|
||||||
{
|
{
|
||||||
var date2 = SelectedStartDate ?? DateTime.Today;
|
var date2 = SelectedStartDate ?? DateTime.Today;
|
||||||
date2 = date2.AddMonths(1);
|
date2 = date2.AddMonths(1);
|
||||||
|
|||||||
Reference in New Issue
Block a user