I did not see a Rad scheduler editing or creating event to check. Which one can I use?
How can I tell if am creating a new appt or just editing?
--/Greg
I have a grouped by resources scheduler in timeline view with the timescale set to days and I'd like to set the so called "slot-duration" to half-day for the day cell, which can already be done in the aspnet ajax version I link below. Is there a way to achieve this functionality in c# winforms?
Basically I'd like to divide the day slots into two parts to track absences, which can have a half day and full day duration.
https://demos.telerik.com/aspnet-ajax/scheduler/examples/timelineview/defaultcs.aspx

Hi!
My scheduler is in timeline view, and also grouped by resources. Is there a way to modify the day headers and add the name of the day itself there? (see picture attached)
Thanks!

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AimmsApp.Task.Views.AgendaMenu"
xmlns:resx="using:AimmsApp.Resources"
xmlns:input="clr-namespace:Telerik.XamarinForms.Input;assembly=Telerik.XamarinForms.Input"
xmlns:views="clr-namespace:AimmsApp.Task.Views;assembly=AimmsApp"
Title="{x:Static resx:Resources.Agenda}">
<AbsoluteLayout x:Name="mainLayout">
<input:RadCalendar x:Name="calendar" ViewMode="Agenda" AppointmentsSource="{Binding Appointments}">
<input:RadCalendar.AgendaViewSettings>
<input:AgendaViewSettings MonthItemFormat="YYYY MMM"
WeekItemStartDateFormat="dd MMMM"
WeekItemEndDateFormat="dd"
DayItemFormat="EEE d MMM"
AppointmentItemTimeFormat="HH mm"
AppointmentItemEndDateFormat="MMM d"
AppointmentItemStartDateFormat="MMM d"
IsHeaderSticky="True"
/>
</input:RadCalendar.AgendaViewSettings>
<input:RadCalendar.BindingContext>
<views:CalendarView />
</input:RadCalendar.BindingContext>
</input:RadCalendar>
</AbsoluteLayout>
</ContentPage>
I tried with scheduler but there is no agenda view maybe somehow with dayview and remove the hours?

I am using the radScheduler for the first time. I am trying to bind some data to it (or even add events programmatically) that we are receiving from an RRS feed. Is there a simple way to do this. The Help files are more about binging a table/dataset to it. Note, this control is used as a READ only view of events for my customers.
TIA for the help

Hello,
I am trying to drag an item from a form Gridview to a Scheduler control but could not see any Scheduler Dragover event got fired. I have set the Scheduler AllowDrop property to true and my code to initiate the transfer is gridview1.DoDragDrop(sTDF, DragDropEffects.Move). Help is apprevciated.
Thanks
Peter

Hello,
I have implemented a custom AppointmentElement and I habe a small display problem with it.
Here is a screenshot:
When the area of the appointment gets to small, the arrow on the right is no longer drawn, but i want the element to always draw it and cut the text first.
Here is my implementation:
internal class CustomAppointmentElement : AppointmentElement
{
private AppointmentsViewModel _appointmentsViewModel;
private DockLayoutPanel _outerContainer;
private StackLayoutElement _container;
private LightVisualButtonElement _expandCollapseButton;
private LightVisualElement _icon1;
private LightVisualElement _icon2;
private LightVisualElement _icon3;
private LightVisualElement _timeText;
private LightVisualElement _summaryText;
private LightVisualElement _continueArrow;
protected override void CreateChildElements()
{
base.CreateChildElements();
this.Padding = new Padding(1, 0, 1, 0);
_outerContainer = new DockLayoutPanel();
_outerContainer.StretchHorizontally = true;
_outerContainer.StretchVertically = true;
_outerContainer.ShouldHandleMouseInput = false;
_outerContainer.NotifyParentOnMouseInput = true;
_outerContainer.LastChildFill = true;
_continueArrow = new LightVisualElement();
_continueArrow.Image = ArrowRightImage;
_continueArrow.StretchHorizontally = false;
_container = new StackLayoutElement();
_container.Orientation = Orientation.Horizontal;
_container.Alignment = ContentAlignment.MiddleLeft;
_container.StretchHorizontally = false;
_container.StretchVertically = true;
_container.ShouldHandleMouseInput = false;
_container.NotifyParentOnMouseInput = true;
_expandCollapseButton = new LightVisualButtonElement();
_expandCollapseButton.ShouldHandleMouseInput = true;
_expandCollapseButton.Margin = new Padding(1, 1, 0, 1);
_expandCollapseButton.NotifyParentOnMouseInput = false;
_expandCollapseButton.Alignment = ContentAlignment.MiddleLeft;
_expandCollapseButton.StretchHorizontally = false;
_expandCollapseButton.StretchVertically = false;
_expandCollapseButton.Click += _expandCollapseButton_Click;
_expandCollapseButton.Image = GetButtonImage(false);
_icon1 = new LightVisualElement();
_icon1.ShouldHandleMouseInput = false;
_icon1.Margin = new Padding(1, 1, 0, 1);
_icon1.NotifyParentOnMouseInput = true;
_icon1.Alignment = ContentAlignment.MiddleLeft;
_icon1.StretchHorizontally = false;
_icon1.StretchVertically = false;
_icon2 = new LightVisualElement();
_icon2.ShouldHandleMouseInput = false;
_icon2.NotifyParentOnMouseInput = true;
_icon2.Alignment = ContentAlignment.MiddleLeft;
_icon2.StretchHorizontally = false;
_icon2.StretchVertically = false;
_icon2.Margin = new Padding(2, 1, 0, 1);
_icon3 = new LightVisualElement();
_icon3.ShouldHandleMouseInput = false;
_icon3.NotifyParentOnMouseInput = true;
_icon3.Alignment = ContentAlignment.MiddleLeft;
_icon3.StretchHorizontally = false;
_icon3.StretchVertically = false;
_icon3.Margin = new Padding(2, 1, 0, 1);
_timeText = new LightVisualElement();
_timeText.Alignment = ContentAlignment.MiddleLeft;
_timeText.ShouldHandleMouseInput = false;
_timeText.NotifyParentOnMouseInput = true;
_timeText.StretchHorizontally = false;
_timeText.StretchVertically = false;
_timeText.Margin = new Padding(2, 1, 2, 1);
_timeText.ClipText = true;
_timeText.TextWrap = false;
_timeText.AutoEllipsis = true;
_summaryText = new LightVisualElement();
_summaryText.Alignment = ContentAlignment.MiddleLeft;
_summaryText.ShouldHandleMouseInput = false;
_summaryText.NotifyParentOnMouseInput = true;
_summaryText.StretchHorizontally = false;
_summaryText.StretchVertically = false;
_summaryText.Margin = new Padding(2, 1, 2, 1);
_summaryText.ClipText = true;
_summaryText.TextWrap = false;
_summaryText.AutoEllipsis = true;
_summaryText.Font = new Font(_summaryText.Font, FontStyle.Bold);
_container.Children.Add(_expandCollapseButton);
_container.Children.Add(_icon1);
_container.Children.Add(_icon2);
_container.Children.Add(_icon3);
_container.Children.Add(_timeText);
_container.Children.Add(_summaryText);
DockLayoutPanel.SetDock(_container, Telerik.WinControls.Layouts.Dock.Left);
_outerContainer.Children.Add(_continueArrow);
DockLayoutPanel.SetDock(_continueArrow, Telerik.WinControls.Layouts.Dock.Right);
_outerContainer.Children.Add(_container);
Children.Add(_outerContainer);
}
}Hope you could help me solve it.
Regards,
Stephan
Hello,
I am using RadScheduler with a grouped TimelineView. The number of resources can be selected with a TrackBar, but if the selected value is to high, the view looks squezed and I got overlappings in my customized resource header elements. So my Idea is a minimum ResourceHeaderHeigth. I want to achieve this by calculating the maximum suitable ResourcesPerView value when the Trackbar is changed or the Form / Scheduler is resized. E.g. if my Scheduler has 250 px size, max 5 resources should be visible and if the size is resized to 200 px, only 4 should be shown, so that every resource has at least 50px height.
But to achieve this I need to get the size of the area, where the resources are paintet or SchedulerSize minus Header and Footer.
private void tbVisibleResourceCount_ValueChanged(object sender, EventArgs e)
{
if (DesignMode)
return;
try
{
int val = (int) tbVisibleResourceCount.Value;
if (val <= 0)
{
tbVisibleResourceCount.Value = 1;
}
else
{
var newValue = Math.Min(val, AppointmentsVm?.AktiveRessourcen?.Count ?? 0 /*rsTermine.Resources.Count*/);
/* todo
switch (rsTermine.SchedulerElement.ViewElement)
{
case SchedulerTimelineViewElement timelineElement:
break;
case SchedulerDayViewElement dayViewElement:
break;
case SchedulerMonthViewElement monthViewElement:
break;
case TimelineGroupingByResourcesElement timelineGrouped:
IList<SchedulerTimelineViewElement> childTimelineElements = timelineGrouped.GetChildViewElements();
break;
case SchedulerDayViewGroupedByResourceElement dayViewGrouped:
break;
case SchedulerMonthViewGroupedByResourceElement monthViewGrouped:
break;
}*/
rsTermine.ActiveView.ResourcesPerView = newValue;
}
SetAppointmentsMargin();
_adjustBackgroundsTimer?.Reset();
}
catch (Exception ex)
{
LogHelper.HandleError<CalendarView>(this, $"Fehler in {nameof(tbVisibleResourceCount_ValueChanged)}", ex);
}
}
Hope you can help me with this problem.
Regards,
Stephan