예제 #1
0
        private async void DayValueChangedHandler(int day)
        {
            day           = Math.Clamp(day, DayRange.Start.Value, DayRange.End.Value);
            _genericValue = new BulDateGeneric(_genericValue.Year, _genericValue.Month, day);

            await ValueChanged.InvokeAsync(GetGeneric());
        }
예제 #2
0
        protected async void YearValueChangedHandler(int year)
        {
            year          = Math.Clamp(year, YearRange.Start.Value, YearRange.End.Value);
            _genericValue = new BulDateGeneric(year, _genericValue.Month, _genericValue.Day);

            await ValueChanged.InvokeAsync(GetGeneric());
        }
예제 #3
0
        private async void MonthValueChangedHandler(int month)
        {
            month         = Math.Clamp(month, MonthRange.Start.Value, MonthRange.End.Value);
            _genericValue = new BulDateGeneric(_genericValue.Year, month, _genericValue.Day);

            await ValueChanged.InvokeAsync(GetGeneric());
        }
예제 #4
0
        protected override void BuildRenderTree(RenderTreeBuilder builder)
        {
            if (Value is DateOnly)
            {
                _genericValue = new BulDateGeneric((DateOnly)(object)Value);
            }
            else if (Value is DateTime)
            {
                _dateTimeSourceRef = (DateTime)(object)Value;
                _genericValue      = new BulDateGeneric(_dateTimeSourceRef);
            }
            else if (Value is DateTimeOffset)
            {
                _dateTimeOffsetSourceRef = (DateTimeOffset)(object)Value;
                _genericValue            = new BulDateGeneric(_dateTimeOffsetSourceRef);
            }
            else
            {
                throw new NotSupportedException("Invalid type. Must be one of DateOnly, DateTime or DateTimeOffset");
            }

            BuildBulma();

            builder.OpenElement(0, "div");
            builder.AddAttribute(1, "class", WrapperClassBuilder.ClassString);

            if (ShowMonths)
            {
                BuildNumberInput(builder, 2, _genericValue.Month, MonthRange, MonthLabel, "month", EventCallback.Factory.Create <int>(this, MonthValueChangedHandler));
            }

            if (ShowDays)
            {
                BuildNumberInput(builder, 3, _genericValue.Day, DayRange, DayLabel, "day", EventCallback.Factory.Create <int>(this, DayValueChangedHandler));
            }

            if (ShowYears)
            {
                BuildNumberInput(builder, 4, _genericValue.Year, YearRange, YearLabel, "year", EventCallback.Factory.Create <int>(this, YearValueChangedHandler));
            }

            builder.CloseElement();
        }