Skip to content

Commit 3589379

Browse files
committed
Add scheduler agnda view
1 parent 4ab7c9d commit 3589379

File tree

6 files changed

+106
-2
lines changed

6 files changed

+106
-2
lines changed

controls/scheduler/commands.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Check below a quick example on how to utilize navigation commands:
3030

3131
## User Actions Commands
3232

33+
* `AddAppointmentCommand` (`ICommand`)—Defines the command that is executed when the add appointment button is clicked. This command opens the appointment creation dialog.
34+
3335
* `AppointmentTapCommand` (`ICommand`)—Defines the command that is executed when an appointment is tapped.
3436

3537
* `AppointmentDoubleTapCommand` (`ICommand`)—Defines the command that is executed when an appointment is double tapped.
@@ -40,7 +42,21 @@ Check below a quick example on how to utilize navigation commands:
4042

4143
* `MonthDayTapCommand` (`ICommand`)—Defines the command that is executed when a month day is tapped.
4244

43-
* `MonthDayDoubleTapCommand` (`ICommand`)—Defines the command that is executed when a a month day is double tapped.
45+
* `MonthDayDoubleTapCommand` (`ICommand`)—Defines the command that is executed when a month day is double tapped.
46+
47+
* `AgendaItemTapCommand`(`ICommand`)—Defines the command that is executed when an agenda item is tapped. Applicable only for the `Agenda` view. The command parameter is a `SchedulerNode` object representing the tapped agenda item. The items are:
48+
49+
- `AgendaMonthNode`—Represents the model for month group headers in the agenda view.
50+
- `AgendaWeekNode`—Represents the model for week group headers in the agenda view.
51+
- `AgendaDayNode`—Represents the model for day group headers in the agenda view
52+
- `AppointmentNode`—Represents the model of the views that are used to visualize appointments.
53+
54+
* `AgendaItemDoubleTapCommand`(`ICommand`)—Defines the command that is executed when an agenda item is double tapped. Applicable only for the `Agenda` view. The command parameter is a `SchedulerNode` object representing the double-tapped agenda item. The items are:
55+
56+
- `AgendaMonthNode`—Represents the model for month group headers in the agenda view.
57+
- `AgendaWeekNode`—Represents the model for week group headers in the agenda view.
58+
- `AgendaDayNode`—Represents the model for day group headers in the agenda view
59+
- `AppointmentNode`—Represents the model of the views that are used to visualize appointments.
4460

4561
## See Also
4662

controls/scheduler/date.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: Date Properties
3+
page_title: .NET MAUI Scheduler Documentation - Date Properties
4+
description: Learn more about the date properties of the Telerik UI for .NET MAUI Scheduler control.
5+
position: 3
6+
slug: scheduler-date
7+
---
8+
9+
# .NET MAUI Scheduler Date Properties
10+
11+
The .NET MAUI Scheduler exposes several date-related properties that you can use to work with dates in the active view.
12+
13+
* `MinDate` (`DateTime`)—Defines the minimum date that can be navigated to in the scheduler. This property restricts backward navigation and prevents displaying dates earlier than the specified minimum. The default value is `2000, 1, 1`.
14+
* `MaxDate` (`DateTime`)—Defines the maximum date that can be navigated to in the scheduler. This property restricts forward navigation and prevents displaying dates later than the specified maximum. The default value is `2099, 12, 31`.
15+
* `CurrentDate` (`DateTime`)—Defines the primary date that determines the visible range of the scheduler. The actual visible range depends on the active view definition. For example, in `WeekView`, this date determines which week is displayed; in `MonthView`, which month is shown. The default value is today's date.
16+
17+
## See Also
18+
19+
- [Views]({% slug scheduler-views-overview %})
20+
- [Month View]({%slug scheduler-month-view%})
21+
- [MultiDay View]({%slug scheduler-multiday-view%})

controls/scheduler/events.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,22 @@ Here is a list of the available events:
3131
* The sender argument, which is of type `object`, but can be cast to the `RadScheduler` type.
3232
* A `TappedEventArgs<DateTime>` object which provides the month day through its `Data` property.
3333

34+
* `AgendaItemTapped`&mdash;occurs when the user taps on an agenda item. This event only applies to `Agenda` view and is not raised in `Day`, `Week`, `Month`, or `Multiday` views. The `AgendaItemTapped` event handler receives two parameters:
35+
* The sender argument, which is of type `object`, but can be cast to the `RadScheduler` type.
36+
* A `TappedEventArgs<SchedulerNode>` object which provides the agenda item occurrence through its `Data` property. The `Data` property can be one of the following types:
37+
* `AgendaMonthNode`&mdash;Represents the model for month group headers in the agenda view.
38+
* `AgendaWeekNode`&mdash;Represents the model for week group headers in the agenda view.
39+
* `AgendaDayNode`&mdash;Represents the model for day group headers in the agenda view.
40+
* `AppointmentNode`&mdash;Represents the model of the views that are used to visualize appointments.
41+
42+
* `AgendaItemDoubleTapped`&mdash;occurs when the user taps on an agenda item. This event only applies to `Agenda` view and is not raised in `Day`, `Week`, `Month`, or `Multiday` views. The `AgendaItemTapped` event handler receives two parameters:
43+
* The sender argument, which is of type `object`, but can be cast to the `RadScheduler` type.
44+
* A `TappedEventArgs<SchedulerNode>` object which provides the agenda item occurrence through its `Data` property. The `Data` property can be one of the following types:
45+
* `AgendaMonthNode`&mdash;Represents the model for month group headers in the agenda view.
46+
* `AgendaWeekNode`&mdash;Represents the model for week group headers in the agenda view.
47+
* `AgendaDayNode`&mdash;Represents the model for day group headers in the agenda view.
48+
* `AppointmentNode`&mdash;Represents the model of the views that are used to visualize appointments.
49+
3450
## See Also
3551

3652
- [Views]({% slug scheduler-views-overview %})
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
title: Agenda Styling
3+
page_title: .NET MAUI Scheduler Documentation - Agenda Styling
4+
description: Learn how to style the agenda view of the Telerik .NET MAUI Scheduler control.
5+
position: 3
6+
slug: scheduler-agenda-styling
7+
---
8+
9+
# .NET MAUI Scheduler Agenda Styling
10+
11+
Use the following properties of the `AgendaViewDefinition` to customize the appearance of the agenda view:
12+
13+
* `MonthTemplate` (`DataTemplate`)&mdash;Specifies the template used to display month headers in the agenda view.
14+
* `WeekTemplate` (`DataTemplate`)&mdash;Specifies the template used to display week headers in the agenda view.
15+
* `DayTemplate` (`DataTemplate`)&mdash;Specifies the template used to display day headers in the agenda view.
16+
* `AppointmentDurationTemplate` (`DataTemplate`)&mdash;Specifies the template used to display appointment duration in the agenda view.
17+
* `InitializationBusyIndicatorStyle` (`Style` with target type `RadBusyIndicator`)&mdash;Specifies the style for the busy indicator shown during initial data loading. This indicator appears centered on screen while the agenda items are being loaded and until scroll is performed to the current item.
18+
* `LoadingProgressIndicatorStyle` (`Style` with target type `RadLinearProgressBar`)&mdash;Specifies the style applied to the progress bar displayed when loading appointments for the visible range.
19+
20+
Here is an example of how to define custom templates in the Agenda View:
21+
22+
1. Define the Agenda View in XAML:
23+
24+
<snippet id='scheduler-agendaview-templates'/>
25+
26+
2. Add the templates to the page's resources:
27+
28+
<snippet id='scheduler-agenda-templates'/>
29+
30+
3. Add the `telerik` namespace:
31+
32+
```XAML
33+
xmlns:telerik="http://schemas.telerik.com/2022/xaml/maui"
34+
```
35+
36+
4. Add a `ViewModel` for the `AppointmentSource`:
37+
38+
<snippet id='agenda-view-viewmodel'/>
39+
40+
This is the result on WinUI:
41+
42+
![.NET MAUI Scheduler Agenda View Styling](images/agendaview-styling.png)
43+
44+
## See Also
45+
46+
- [Views]({% slug scheduler-views-overview %})
49.8 KB
Loading

controls/scheduler/views/agenda-view.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ Add a `AgendaViewDefinition` to the `ViewDefinitions` collection of the `RadSche
2424

2525
![.NET MAUI Scheduler Agenda View](../images/scheduler-agendaview.png)
2626

27-
## Properties
27+
## Properties on Scheduler Level
28+
29+
* `AddAppointmentCommand` (`ICommand`)&mdash;Defines the command that is executed when the add appointment button is clicked. This command opens the appointment creation dialog.
30+
* `AddAppointmentButtonStyle` (`Style` with target type `RadButton`)&mdash;Defines the style that is applied to the add appointment button displayed in the Scheduler header. The button is visible for the `Agenda` view.
31+
32+
## Properties on Agenda View Level
2833

2934
* `Title` (`string`)&mdash;Specifies the name for the view. If not explicitly set, a default title may be generated.
3035
* `HeaderTextFormat` (`string`)&mdash;Defines the string format of the header text.

0 commit comments

Comments
 (0)