Hi,
I want to change appointment day by day (with the cursor) in timeline (not minute by minute).
This is my xaml code :
My MonthlyTickProvider class :
I want to change appointment day by day (with the cursor) in timeline (not minute by minute).
This is my xaml code :
<telerik:RadScheduleView Grid.Row=
"1"
AppointmentsSource=
"{Binding LstAppointments}"
ResourceTypesSource=
"{Binding LstSchedulerHeaderOperations}"
CategoriesSource=
"{Binding Categories}"
CurrentDate=
"{Binding CurrentDate}"
SelectedSlot=
"{Binding SelectedSlot, Mode=TwoWay}"
Margin=
"10,20,10,10"
>
<telerik:RadScheduleView.ViewDefinitions>
<telerik:TimelineViewDefinition VisibleDays=
"65"
MajorTickLength=
"1day"
MinorTickLength=
"1day"
TimerulerMajorTickStringFormat=
"{}{0:dd}"
>
<telerik:TimelineViewDefinition.GroupTickLength>
<local:MonthlyTickProvider />
</telerik:TimelineViewDefinition.GroupTickLength>
</telerik:TimelineViewDefinition>
</telerik:RadScheduleView.ViewDefinitions>
<scheduleView:RadScheduleView.GroupDescriptionsSource>
<scheduleView:GroupDescriptionCollection>
<scheduleView:ResourceGroupDescription ResourceType=
"OP"
/>
<telerik:ResourceGroupDescription ResourceType=
"DETAIL"
/>
</scheduleView:GroupDescriptionCollection>
</scheduleView:RadScheduleView.GroupDescriptionsSource>
</telerik:RadScheduleView>
My MonthlyTickProvider class :
public
class
WeeklyTickProvider : DependencyObject, ITickProvider
{
public
static
readonly
DependencyProperty CurrentDateProperty =
DependencyProperty.Register(
"CurrentDate"
,
typeof
(DateTime),
typeof
(WeeklyTickProvider),
null
);
public
DateTime CurrentDate
{
get
{
return
(DateTime)GetValue(CurrentDateProperty); }
set
{ SetValue(CurrentDateProperty, value); }
}
public
static
readonly
DependencyProperty VisibleDaysProperty =
DependencyProperty.Register(
"VisibleDays"
,
typeof
(
int
),
typeof
(WeeklyTickProvider),
null
);
public
int
VisibleDays
{
get
{
return
(
int
)GetValue(VisibleDaysProperty); }
set
{ SetValue(VisibleDaysProperty, value); }
}
public
string
GetFormatString(IFormatProvider formatInfo,
string
formatString, DateTime currentStart)
{
var start = currentStart.Date;
var end =
this
.GetNextStart(TimeSpan.Zero
/*not used, see below*/
, currentStart).AddSeconds(-1);
if
(
this
.CurrentDate > start &&
this
.CurrentDate < end)
start =
this
.CurrentDate;
//var viewEnd = this.CurrentDate.AddDays(this.VisibleDays).AddSeconds(-1);
//if (viewEnd < end)
// end = viewEnd;
return
string
.Format(formatInfo,
"{0:dd/MMMM/yyyy} - {1:dd/MMMM/yyyy}"
, start, end);
}
public
DateTime GetNextStart(TimeSpan pixelLength, DateTime currentStart)
{
var currentDate = currentStart.Date;
var weekStart = CalendarHelper.GetFirstDayOfWeek(currentStart, DayOfWeek.Tuesday);
if
(weekStart == currentDate)
{
return
weekStart.AddDays(7);
}
return
weekStart;
}
}
public
class
MonthlyTickProvider : ITickProvider
{
public
string
GetFormatString(IFormatProvider formatInfo,
string
formatString, DateTime currentStart)
{
return
string
.Format(formatInfo,
"{0:MMMM - yyyy}"
, currentStart);
}
public
DateTime GetNextStart(TimeSpan pixelLength, DateTime currentStart)
{
var currentDate = currentStart.Date;
var monthStart = CalendarHelper.GetStartOfMonth(currentStart.Year, currentStart.Month);
if
(monthStart == currentDate)
{
return
monthStart.AddMonths(1);
}
return
monthStart;
}
}