feat: disable calendar reset on focus temporarily. This will be fixed after 11.1
This commit is contained in:
@@ -82,4 +82,10 @@ public sealed class CalendarContext(int? year = null, int? month = null, int? st
|
|||||||
if (yearComparison != 0) return yearComparison;
|
if (yearComparison != 0) return yearComparison;
|
||||||
return Nullable.Compare(Month, other.Month);
|
return Nullable.Compare(Month, other.Month);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return
|
||||||
|
$"Start: {StartYear?.ToString() ?? "null"}, End: {EndYear?.ToString() ?? "null"}, Year: {Year?.ToString() ?? "null"}, Month: {Month?.ToString() ?? "null"}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Globalization;
|
using System.Diagnostics;
|
||||||
|
using System.Globalization;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
@@ -81,6 +82,7 @@ public class CalendarView : TemplatedControl
|
|||||||
|
|
||||||
private void OnContextDateChanged(AvaloniaPropertyChangedEventArgs<CalendarContext> args)
|
private void OnContextDateChanged(AvaloniaPropertyChangedEventArgs<CalendarContext> args)
|
||||||
{
|
{
|
||||||
|
Debug.WriteLine(this.Name + " " + args.NewValue.Value);
|
||||||
if (!_dateContextSyncing)
|
if (!_dateContextSyncing)
|
||||||
{
|
{
|
||||||
ContextDateChanged?.Invoke(this, args.NewValue.Value);
|
ContextDateChanged?.Invoke(this, args.NewValue.Value);
|
||||||
@@ -317,7 +319,7 @@ public class CalendarView : TemplatedControl
|
|||||||
if (_monthGrid is null || Mode != CalendarViewMode.Month) return;
|
if (_monthGrid is null || Mode != CalendarViewMode.Month) return;
|
||||||
var children = _monthGrid.Children;
|
var children = _monthGrid.Children;
|
||||||
var info = DateTimeHelper.GetCurrentDateTimeFormatInfo();
|
var info = DateTimeHelper.GetCurrentDateTimeFormatInfo();
|
||||||
var date = new DateTime(ContextDate.Year.Value, ContextDate.Month.Value, 1);
|
var date = new DateTime(ContextDate.Year ?? ContextDate.StartYear.Value, ContextDate.Month.Value, 1);
|
||||||
var dayBefore = PreviousMonthDays(date);
|
var dayBefore = PreviousMonthDays(date);
|
||||||
var dateToSet = date.GetFirstDayOfMonth().AddDays(-dayBefore);
|
var dateToSet = date.GetFirstDayOfMonth().AddDays(-dayBefore);
|
||||||
for (var i = 7; i < children.Count; i++)
|
for (var i = 7; i < children.Count; i++)
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ public class DateRangePicker : DatePickerBase
|
|||||||
|
|
||||||
private void OnContextDateChanged(object sender, CalendarContext e)
|
private void OnContextDateChanged(object sender, CalendarContext e)
|
||||||
{
|
{
|
||||||
if(sender == _startCalendar)
|
if(sender == _startCalendar && _startCalendar?.Mode == CalendarViewMode.Month)
|
||||||
{
|
{
|
||||||
bool needsUpdate = EnableMonthSync || _startCalendar?.ContextDate.CompareTo(_endCalendar?.ContextDate) >= 0;
|
bool needsUpdate = EnableMonthSync || _startCalendar?.ContextDate.CompareTo(_endCalendar?.ContextDate) >= 0;
|
||||||
if (needsUpdate)
|
if (needsUpdate)
|
||||||
@@ -156,7 +156,7 @@ public class DateRangePicker : DatePickerBase
|
|||||||
_endCalendar?.SyncContextDate(_startCalendar?.ContextDate.NextMonth());
|
_endCalendar?.SyncContextDate(_startCalendar?.ContextDate.NextMonth());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(sender == _endCalendar)
|
else if(sender == _endCalendar && _endCalendar?.Mode == CalendarViewMode.Month)
|
||||||
{
|
{
|
||||||
bool needsUpdate = EnableMonthSync || _endCalendar?.ContextDate.CompareTo(_startCalendar?.ContextDate) <= 0;
|
bool needsUpdate = EnableMonthSync || _endCalendar?.ContextDate.CompareTo(_startCalendar?.ContextDate) <= 0;
|
||||||
if (needsUpdate)
|
if (needsUpdate)
|
||||||
@@ -324,6 +324,7 @@ public class DateRangePicker : DatePickerBase
|
|||||||
{
|
{
|
||||||
var date1 = SelectedStartDate ?? DateTime.Today;
|
var date1 = SelectedStartDate ?? DateTime.Today;
|
||||||
_startCalendar.ContextDate = new CalendarContext(date1.Year, date.Month);
|
_startCalendar.ContextDate = new CalendarContext(date1.Year, date.Month);
|
||||||
|
//_startCalendar.SyncContextDate(new CalendarContext(date1.Year, date1.Month));
|
||||||
_startCalendar.UpdateDayButtons();
|
_startCalendar.UpdateDayButtons();
|
||||||
_startCalendar?.MarkDates(SelectedStartDate, SelectedEndDate, _previewStart, _previewEnd);
|
_startCalendar?.MarkDates(SelectedStartDate, SelectedEndDate, _previewStart, _previewEnd);
|
||||||
}
|
}
|
||||||
@@ -332,6 +333,7 @@ public class DateRangePicker : DatePickerBase
|
|||||||
var date2 = SelectedEndDate ?? SelectedStartDate ?? DateTime.Today;
|
var date2 = SelectedEndDate ?? SelectedStartDate ?? DateTime.Today;
|
||||||
if (SelectedEndDate is null) date2 = date2.AddMonths(1);
|
if (SelectedEndDate is null) date2 = date2.AddMonths(1);
|
||||||
_endCalendar.ContextDate = new CalendarContext(date2.Year, date2.Month);
|
_endCalendar.ContextDate = new CalendarContext(date2.Year, date2.Month);
|
||||||
|
//_endCalendar.SyncContextDate(new CalendarContext(date2.Year, date2.Month));
|
||||||
_endCalendar.UpdateDayButtons();
|
_endCalendar.UpdateDayButtons();
|
||||||
_endCalendar?.MarkDates(SelectedStartDate, SelectedEndDate, _previewStart, _previewEnd);
|
_endCalendar?.MarkDates(SelectedStartDate, SelectedEndDate, _previewStart, _previewEnd);
|
||||||
}
|
}
|
||||||
@@ -344,16 +346,16 @@ public class DateRangePicker : DatePickerBase
|
|||||||
if (_startCalendar is not null && _startCalendar?.Mode == CalendarViewMode.Month)
|
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 && _endCalendar?.Mode == CalendarViewMode.Month)
|
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);
|
||||||
_endCalendar.ContextDate = new CalendarContext(date2.Year, date2.Month);
|
//_endCalendar.ContextDate = new CalendarContext(date2.Year, date2.Month);
|
||||||
_endCalendar.UpdateDayButtons();
|
//_endCalendar.UpdateDayButtons();
|
||||||
}
|
}
|
||||||
SetCurrentValue(IsDropdownOpenProperty, true);
|
SetCurrentValue(IsDropdownOpenProperty, true);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user