Intersoft UXScheduleView is a powerful, MVVM-ready scheduling control for Silverlight and WPF application development. UXScheduleView provides a multitude of advanced scheduling features such as full MVVM pattern support, extensible view architecture, integrated navigation interface, multi-level grouping, fluid event resizing and drag drop, sophisticated editing form and ISO standards user experiences. In addition to the rich features, UXScheduleView delivers blazing-fast performance – thanks to the smart virtual layout and comprehensive LINQ operation.
This topic contains the following sections.
Introduction to UXScheduleView
UXScheduleView is a full-featured scheduling control that combines rock-solid architecture with superior user experiences. With its extensible architecture, UXScheduleView enables you to define any number of calendar views with the simplicity of XAML markup declaration. You can also create your own custom views that leverages many of the built-in features like calendar navigation and automatic view synchronization feature, and consume the custom view in a single XAML declaration.
UXScheduleView sports an elegant user interface with industrial standards design featuring a minimalistic toolbar and built-in collapsible navigation pane. It also pays very detailed attention on every user interface element – for instances, the time designator that keeps visible as you scroll, real-time hour indicator, razor-sharp lines, and smart layout rendering. Furthermore, each row and cell is rendered in pixel-perfect fashion to ensure the best viewing experiences.
The following illustration describes the overall user interface design of the UXScheduleView control.
Using UXScheduleView
UXScheduleView provides a flexible way to display a collection of data in resource and time dimension. You can choose between UXScheduleDayView, UXScheduleWeekView, UXScheduleWorkWeekView and UXScheduleMonthView to display your collection of data. Every view has its own unique behaviors to display data which can be used individually or integrated in UXScheduleView. Furthermore, you can also create a custom view to be integrated to UXScheduleView by creating a new class that derives from UXScheduleViewBase.
Defining Views | ![]() |
---|---|
<Intersoft:UXScheduleView> <Intersoft:UXScheduleDayView/> <Intersoft:UXScheduleWorkWeekView/> <Intersoft:UXScheduleWeekView IsActive="True"/> <Intersoft:UXScheduleMonthView/> </Intersoft:UXScheduleView> |
To learn more how to create custom view, see How-to: Create And Integrates Custom View to UXScheduleView.
Binding Data
To bind UXScheduleView or any individual view to data, set the EventsSource property to an object that implements IEnumerable. Each event in the UXScheduleView is bound to an object in data source. In order for the UXScheduleView user interface to update automatically when items are added to or removed from the source data, UXScheduleView must be bound to a collection that implements INotifyCollectionChanged such as an ObservableCollection<T>. In addition, the objects in the source collection should implement the INotifyPropertyChanged interface to enable the changes to be automatically reflected in the user interface.
Defining Events Source | ![]() |
---|---|
<Intersoft:UXScheduleView x:Name="SampleControl1" IsBusy="{Binding IsBusy, Mode=TwoWay}" EventsSource="{Binding Events}" CategoriesSource="{Binding Categories}" ResourcesSource="{Binding Resources}"> <Intersoft:UXScheduleDayView/> <Intersoft:UXScheduleWorkWeekView/> <Intersoft:UXScheduleWeekView/> <Intersoft:UXScheduleMonthView/> <local:AgendaView Header="Agenda" IsActive="True"/> </Intersoft:UXScheduleView> |
Besides EventsSource, UXScheduleView also provides CategoriesSource and ResourcesSource that work in conjunction with the EventsSource. CategoriesSource provides collection of category data, while the ResourcesSource provides collection of resource data that belong to each event. In general, the relationship between Category, Resource and Event can be illustrated in the following figure.
The tables schema such as shown in the figure above is the minimum requirement that you should implement to effectively use UXScheduleView in your application. You can have additional fields such as PatientID field in the HospitalEvent table, but all other columns are required in the tables schema. To understand the purpose of each field, please refer to the following section.
Defining Data Member Paths
When the EventsSource is specified, UXScheduleView will create a UXScheduleViewEventModel for each item available in the collection. The UXScheduleViewEventModel class represents users data by mapping the important fields as follow:
- EventIDMemberPath
An Integer field that represents the unique id of the event. - ParentIDMemberPath
An Integer field that represents the parent recurring event. An event that has parent id is an exception event for parent event that represents by the parent id. - ResourceIDMemberPath
An Integer field that represents the resource associated to the event. - CategoryIDMemberPath
An integer field that represents the category associated to the event. - StartDateMemberPath
A DateTime field that represents the start date of the event. - EndDateMemberPath
A DateTime field that represents the end date of the event. - SubjectMemberPath
A String field that represents the subject of the event. - LocationMemberPath
A String field that represents the location of the event. - DescriptionMemberPath
A String field that represents the description of the event. - AllDayEventMemberPath
A Boolean field that indicates whether the current event is all day event or not. - ReminderMemberPath
An Integer field that represents the reminder time in minutes. - ModeMemberPath
An Integer field that represents the importance mode of the event. This value will be converted to an enumeration value of ImportanceMode. - ExceptionInfoMemberPath
An Integer field that represents the state of exception event. If the value is set to 1, it means that the state of the exception event is deleted. - ExceptionDateMemberPath
A DateTime field that represents where the original date of recurring event occurs. - RecurrenceInfoMemberPath
A String field in form of XML Data that holds information about the recurring pattern. - RecurrenceModeMemberPath
An Integer field that represents the recurrence mode of the recurring event. This value will be converted to an enumeration value of RecurrenceMode. - RecurrenceRangeModeMemberPath
An Integer field that represents the recurrence range mode of the recurring event. This value will be converted to an enumeration value of RecurrenceRangeMode. - RecurrenceStartDateMemberPath
A DateTime field that represents the start date of the recurring pattern. - RecurrenceEndDateMemberPath
A DateTime field that represents the end date of the recurring pattern, when the recurrence range mode is set to EndByDate. - RecurrenceTotalRecurrencesMemberPath
An Integer field that indicates the total number of recurrences, when the recurrence range mode is set to EndAfterNRecurrence. - RecurrenceNDayMemberPath
An Integer field that represents the n day value that going to be applied depending on the RecurrenceMode. - RecurrenceNWeekMemberPath
An Integer field that represents the n week value that going to be applied depending on the RecurrenceMode. - RecurrenceNMonthMemberPath
An Integer field that represents the n month value that going to be applied depending on the RecurrenceMode. - RecurrenceNYearMemberPath
An Integer field that represents the n year value that going to be applied depending on the RecurrenceMode. - RecurrenceWeekDaysMemberPath
An Integer field that represents week days where the recurring event will recurs when the RecurrenceMode is set to Weekly.
![]() |
All member path properties in UXScheduleView already have their default value set. It is not necessary to define these member path again if your data model already matches the default value of the member path. |
Besides the fields mapping, UXScheduleViewEventModel provides OriginalObject property which represents the original data item specified in EventsSource. The OriginalObject property is particularly useful when you need to access additional fields that are not in mapped to UXScheduleViewEventModel. It enables you to use the {Binding} markup to display the additional fields in the custom data template of the event, event details or in the editing form.
The same concept is also applied to CategoriesSource and ResourcesSource with their own respective member paths.
Resource member paths:
- ResourceIDMemberPath
An Integer field that represents the unique id of the resource. - ResourceNameMemberPath
A String field that represents the name of the resource. - ResourceColorMemberPath
A String field that represents hex color of the resource. - ResourceTextColorMemberPath
A String field that represents hex text color of the resource.
Category member paths:
- CategoryIDMemberPath
An Integer field that represents the unique id of the category. - CategoryNameMemberPath
A String field that represents the name of the category. - CategoryColorMemberPath
A String field that represents hex color of the category.
Understanding Events Concept
Events in UXScheduleView is rendered uniquely based on the current active view.
In UXScheduleDayView, UXScheduleWeekView, and UXScheduleWorkWeekView; the event can be rendered in the time cell or at the all day event area depending the StartDate and EndDate of the event. The following figures list all possible event rendering in UXScheduleDayView, UXScheduleWeekView, and UXScheduleWorkWeekView.
- An event that starts from 3:00 PM - 4:30 PM.
- An event that starts from 3:00 PM - 4:45 PM.
Notice that the event is rendered exactly from 15:00 PM - 16:45 PM. - An event that starts at 3:30 PM - 3:30 PM.
When the start date and the end date is identical, the height of the event will be the same height as interval as shown in the figure below. - An event that starts from October 9th, 3:30 PM - October 10th, 3:00 PM.
If the duration of the event is still lower then a day, it will not be rendered in all day event area instead it will still be rendered in time cell area as shown in the figure below.
- Event that start from October 9th, 15:30 PM - October 10th, 17:30 PM.
If the duration of the event is larger than a day (24 hours), it will be rendered in the all-day event area with the time indicator displayed in the event along with the cell indicator in the time cell area.
- An all-day event that starts from October 9th - October 10th.
If the event is marked as all-day event, the time will not be shown because it starts from 00:00 AM.
In UXScheduleMonthView, the event will be rendered in the available area depending on its StartDate and EndDate. If it is a time-based event, it will have an icon indicating that the particular event is a time-based event. The following figures list all possible event rendering in UXScheduleMonthView.
- An event that starts from 3:30 PM - 5:30 PM.
- An event that starts from October 9th, 3:30 PM - October 10th, 3:00 PM.
- An all-day event that starts from October 9th - October 11th.
Start Date and End Date Indicator
As you can see in the above figures, there are time indicator visual hint displayed in the event which is useful to directly understand when the event is started or ended. Besides the time indicator, UXScheduleViewEvent also provides a date indicator that will appear if the event start date or end date is out of the current view.
The following figures describe how date indicator works in various scenarios.
- The range date of the current view is from October 10th 2010 - October 16th 2010.
- The range date of the current view is from September 25th 2011 - October 29th 2011.
Event Details
You can see the detail of the event by double clicking the event, or using the context menu by right clicking on the event and select Show Detail. This action will show an elegant callout-style popup that contain more detailed information about the event such as shown below.
You can also customize the event detail to suit your application's requirements. To learn more how to customize the event detail, see How-to: Customize Event Detail in UXScheduleView.
Overlapping Events
Each view in UXScheduleView has their own unique way in handling overlapping events, however they share common rules as follows.
- Events with earlier start date will be shown first.
- Events with longer duration will be shown first.
Overlapping events in UXScheduleWeekView
Overlapping events in UXScheduleMonthView
If the overlapping events exceeded the available space, they will be automatically shifted to the "more items" popup. You will see an arrow visual hint indicating that you can click on it to show the other events in that particular day.
Recurring Events
As mentioned in previous section, UXScheduleView supports both standard and recurring event. A recurring event is an event that will occur more than once according to the specified recurring pattern.
There are five type of recurrence patterns supported in UXScheduleView:
- Daily Every [n] Day
- Daily Every Week Day
- Weekly
- Monthly
- Yearly
Understanding Recurring Info Data
UXScheduleView expects the recurrence pattern to be stored in the RecurringInfo property of your event data model. The RecurringInfo data is persisted in the form of XML format such as shown in the following example.
RecurrenceInfo | ![]() |
---|---|
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="2" RecurrenceRangeMode="0" WeekDays="1, 3, 5" /> |
The raw XML data will be serialized and deserialized automatically by the UXScheduleView control during data binding process. Note that the tag name should be exactly RecurrenceInfo, while the attributes should follow the data member listed in the previous section.
The following list describes the attributes that you can use.
- RecurrenceMode from RecurrenceModeMemberPath
- RecurrenceRangeMode from RecurrenceRangeModeMemberPath
- StartDate from RecurrenceStartDateMemberPath
- EndDate from RecurrenceEndDateMemberPath
- TotalRecurrence from RecurrenceTotalRecurrencesMemberPath
- NDay from RecurrenceNDayMemberPath
- NWeek from RecurrenceNWeekMemberPath
- NMonth from RecurrenceNMonthMemberPath
- NYear from RecurrenceNYearMemberPath
- WeekDays from RecurrenceWeekDaysMemberPath
The persisted attributes can vary depending on the RecurrenceMode, however the following attributes are always required in the recurring info:
- StartDate
A value that determines the start of the recurring event. - RecurrenceMode
The recurring pattern used in this particular event. Each recurring pattern will look up at different attributes value. - RecurrenceRangeMode
How the recurring event ends.
As mentioned above, the value of recurrence mode will be converted to an enumeration value of RecurrenceMode. Let see how the data looks like for five types of recurrence patterns that supported by UXScheduleView.
- DailyEveryNDay
Occurs every [nday] day effective [startdate]
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="0" NDay="1" /> - DailyEveryWeekDay
Occurs every weekday effective [startdate]
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="1" /> -
Weekly
Occurs every [nweek] on [weekdays] effective [startdate]
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="2" WeekDays="1, 3, 5" />
WeekDays should be in integer value.
0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday. - Monthly
Occurs on [nday] of every [nmonth] effective [startdate]
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="3" NDay="20" NMonth="1"/> - Yearly
Occurs every [nyear] on [nday] [nmonth] effective [startdate]
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="4" NDay="20" NMonth="1" NYear="1"/>
For the recurrence range, there are three mode that you can choose from:
- NoEndDate
The recurring pattern has no end date.
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="0" RecurrenceRangeMode="0" NDay="1" /> - EndAfterNRecurrence
The recurring pattern end after specified total recurrences
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="0" RecurrenceRangeMode="1" TotalRecurrences="10" NDay="1" /> - EndByDate
The recurring pattern end by the specified date
<RecurrenceInfo StartDate="1/2/2012" RecurrenceMode="0" RecurrenceRangeMode="2" EndDate="2/2/2012" NDay="1" />
![]() |
All the date format in recurring info must use the following format: MM/dd/yyyy. |
![]() |
For scalability purpose, it is common to filter the data based on specific range or date, resource, and any other specific filter scenarios. However, when you implement the data filtering, please retrieve all exception events particularly when you have recurring events retrieved in the filtering clause. This is important because when the recurring pattern of an event changes, all exception events will be deleted to maintain data consistency. Therefore, it is required to retrieve all exception events enabling UXScheduleView to provide a collection of events to be deleted when this scenario occurred. An exception event is an event that has ParentID and ExceptionDate. |
Understanding Resources Concept
Each event in UXScheduleView must be linked to a resource object in ResourcesSource through the ResourceID property. The resource object is used to identify which events belong to which resource in multiple resources scheduling applications. By default, the resources are differentiated through the background color of the event.
The resource colors can be further customized by providing the ResourceColor and ResourceTextColor in the resource model. Please refer to the data binding section above to learn how to bind the colors to a resource model.
Filtering Events Based On Resources
When you have multiple resources in your application as seen in the figure above, the resources list will be populated and presented under the Resources section in the navigation pane. Each resource has a check box which indicates whether the resource should be displayed in the active schedule view. To filter out a resource, simply uncheck the resource's check box such as shown in the figure below.
Grouping Events Based On Resources
UXScheduleView includes a high-performance grouping feature enabling you to group events based on resources. To learn more about the grouping feature, see Grouping Data in UXScheduleView.
Understanding Categories Concept
You can categorize an event by adding a category which is linked to a category object specified in CategoriesSource through the CategoryID property. When an event has a category, you will see a colored rectangle in the top left section of both the event and event details such as shown in the following figure.
The colors can be further customized by specifying the CategoryColor in the category model. Please refer to the data binding section above to learn how to bind the colors to CategoryColor.
Categorizing Events in UXScheduleView
To add or modify the category of an event, you can use the built-in context menu or the editing form feature in UXScheduleView. Note that you need to have the CanUserEditItems feature set to True.
The following figure shows the category editor in the built-in editing form.
Grouping Events Based On Categories
UXScheduleView includes a high-performance grouping feature enabling you to group events based on categories. To learn more about the grouping feature, see Grouping Data in UXScheduleView.
Navigating Events in UXScheduleView
To navigate events in UXScheduleView, you can use several access points such as explained in the sections below.
Calendar
Calendar is the main access point that you can use to navigate events. It is using UXCalendar control which means you have access to all the rich features available in the control such as clicking on a date to navigate to a certain date, or select multiple dates to navigate across certain date range. Furthermore, the calendar also provides additional behaviors depending on the current active view.
- If the current active view is MonthView/DayView, you can click any date to jump directly to that specific date. In this case, the view will be automatically changed to DayView if the view is defined in the UXScheduleView.
- If the current active view is WeekView/WorkWeekView, you can click on any date to jump to that particular week.
In addition, you can also perform range selection in the calendar. UXScheduleView will change the current active view depending on the number of days you select.
- If you select < 7 days, it will switch to DayView and displays the number of days you select.
- If you select 7 days, it will switch to WeekView.
- If you select >= 14 days, it will switch to MonthView.
![]() |
When you navigate between one view to another view, UXScheduleView will persist the current selected dates from the previous view to the current view. |
Navigation Button
Each view includes built-in navigation buttons that you can use to navigate to previous and/or next range of date. The navigation buttons are located in the title area by default.
Header Button
Each cell that represents a day in the view contains a header button that you can click to jump directly to specific date/date range that it represents.
Keyboard Navigation
When you select a cell, you can use Arrow Key in your keyboard to navigate from one range of date to another range of date. You can also use Shift + Arrow Key to select multiple cells to indicate the date range when you insert a new event. To learn more about editing feature in UXScheduleView, see Editing Data in UXScheduleView.
Furthermore, you can also use Tab to select from one event to another event, or use Shift + Tab to navigate backward.
Localizing UXScheduleView Textual Content
You can easily localize the textual content of UXScheduleView by setting the ResourceOverride property to a UXScheduleViewResource instance containing the customized textual content.
The default textual content are listed in the following table.
Resource Key | Resource Value |
---|---|
CancelText | Cancel |
CategoriesText | Category |
ConfirmDeleteText | Confirm Delete |
DeleteOccurrenceInfoText | Delete this occurrence. |
DeleteOccurrenceText | Delete Occurrence |
DeleteRecurringEventInfoText | Do you want to delete all occurrences of the recurring appointment {0}, or just this one? |
DeleteSeriesInfoText | Delete this series. |
DeleteSeriesText | Delete Series |
DeleteText | Delete |
EditOccurrenceText | Edit Occurrence |
EditSeriesText | Edit Series |
EditText | Edit |
EventDateRangeText | {0} - {1} |
LoadingText | Loading... |
MoreItemsText | {0} more items |
MoreItemText | {0} more item |
NewAllDayEventText | New All Day Event |
NewEventText | New Event |
NewRecurringEventText | New Recurring Event |
NextText | Next |
OKText | OK |
PreviousText | Previous |
RecurringText_AllDayEvent | Occurs {0} effective {1:M/d/yyyy} |
RecurringText_AllDayEventWithEndRange | Occurs {0} effective {1:M/d/yyyy} until {2:M/d/yyyy} |
RecurringText_Event | Occurs {0} effective {1:M/d/yyyy} from {2:h:mm tt} to {3:h:mm tt} |
RecurringText_EventWithEndRange | Occurs {0} effective {1:M/d/yyyy} until {2:M/d/yyyy} from {3:h:mm tt} to {4:h:mm tt} |
RecurringText_EveryDay | every day |
RecurringText_EveryNDay | every {0} days |
RecurringText_EveryNWeek | every {0} weeks on {1} |
RecurringText_EveryNYearOnDate | every {0} years on {1} |
RecurringText_EveryWeek | every {0} |
RecurringText_EveryWeekDay | every week days |
RecurringText_EveryYearOnDate | every year {0} |
RecurringText_FullDayEvent | Occurs {0} effective {1:M/d/yyyy} at {2:h:mm tt}. |
RecurringText_FullDayEventWithEndRange | Occurs {0} effective {1:M/d/yyyy} until {2:h:mm tt} at {3:h:mm tt}. |
RecurringText_NDayEveryMonth | day {0} every month |
RecurringText_NDayEveryNMonth | day {0} every {1} month |
ResourcesText | Resources |
ShowDetailText | Show Details |
TodayText | Today |
TooltipText_AddNewEvent | Add new event |
TooltipText_Back | Back |
TooltipText_Forward | Forward |
TooltipText_NextGroup | Go to next group |
TooltipText_PreviousGroup | Go to previous group |
TooltipText_ShowToday | Show today in calendar |
TooltipText_ToggleNavigationPane | Toggle navigation pane |
The following examples show how to localize the textual content of a UXScheduleView.
Example Title | ![]() |
---|---|
<Intersoft:UXScheduleView x:Name="SampleControl1" DisplayDate="1/2/2012" Culture="de-DE" IsBusy="{Binding IsBusy, Mode=TwoWay}" EventsSource="{Binding Events}" CategoriesSource="{Binding Categories}" ResourcesSource="{Binding Resources}"> <Intersoft:UXScheduleView.ResourceOverride> <Intersoft:UXScheduleViewResource CancelText="Stornieren" CategoriesText="Kategorien" ConfirmDeleteText="Löschen bestätigen" DeleteOccurrenceInfoText="Löschen Sie diesen Vorgang." DeleteOccurrenceText="löschen Vorkommen" DeleteRecurringEventInfoText="Wollen Sie alle Vorkommen des Termins {0} zu löschen, oder nur diese eine?" DeleteSeriesInfoText="Löschen dieser Serie." DeleteSeriesText="Löschen Serie" DeleteText="Löschen" EditOccurrenceText="bearbeiten Vorkommen" EditSeriesText="bearbeiten Series" EditText="bearbeiten" MoreItemsText="\{0} mehr Elemente" MoreItemText="\{0} mehr Artikel" NewAllDayEventText="Neues ganztägiges Ereignis" NewEventText="Neuer Termin" NewRecurringEventText="New Wiederkehrend" NextText="nächste" PreviousText="Vorherige" RecurringText_AllDayEvent="Tritt {0} {1: M / d / yyyy}" RecurringText_AllDayEventWithEndRange="Tritt {0} {1: M / d / yyyy} bis {2: M / d / yyyy}" RecurringText_Event="Tritt {0} {1: M / d / yyyy} von {2: h: mm tt} {3: h: mm tt}" RecurringText_EventWithEndRange="Tritt {0} {1: M / d / yyyy} bis {2: M / d / yyyy} von {3: h: mm tt} bis {4: h: mm tt}" RecurringText_EveryDay="täglich" RecurringText_EveryNDay="jeder dayevery {0} Tage" RecurringText_EveryNWeek="jeden {0} Wochen {1}" RecurringText_EveryNYearOnDate="jedes Jahr {0}" RecurringText_EveryWeek="jeden {0}" RecurringText_EveryWeekDay="alle Wochentage" RecurringText_EveryYearOnDate="jedes Jahr {0}" RecurringText_FullDayEvent="Tritt {0} {1: M / d / yyyy} am {2: h: mm tt}." RecurringText_FullDayEventWithEndRange="Tritt {0} {1: M / d / yyyy} bis {2: h: mm tt} um {3: h: mm tt}." RecurringText_NDayEveryMonth="Tag {0} pro Monat" RecurringText_NDayEveryNMonth="Tag {0} alle {1} Monat" ResourcesText="Ressourcen" ShowDetailText="Details anzeigen" TodayText="heute" TooltipText_AddNewEvent="Legen Sie eine neue Veranstaltung" TooltipText_Back="zurück" TooltipText_Forward="nach vorn" TooltipText_NextGroup="Zur nächsten Gruppe" TooltipText_PreviousGroup="Zum vorherigen Gruppe" TooltipText_ShowToday="Show heute in Kalender" TooltipText_ToggleNavigationPane="Toggle Navigationsbereich" /> </Intersoft:UXScheduleView.ResourceOverride> <Intersoft:UXScheduleDayView Header="Tag"/> <Intersoft:UXScheduleWorkWeekView Header="Arbeitswoche"/> <Intersoft:UXScheduleWeekView IsActive="True" Header="Woche"/> <Intersoft:UXScheduleMonthView Header="Monat"/> </Intersoft:UXScheduleView> |
For more information about ClientUI localization framework, see Localization Overview.
Learn More
This topic provides a comprehensive overview of UXScheduleView which discusses the basics of data binding and explains the fundamental elements and settings available in the control.
UXScheduleView also provides more advanced features which you can explore through the following links:
- Editing Data in UXScheduleView
- Grouping Data in UXScheduleView
- How-to: Customize the Event Appearance using StyleSelector
- How-to: Dynamically Customize the Cell Appearance using CellStateSelector
- How-to: Move UXScheduleView Calendar and Resource List to an External Container
UXScheduleViewBase Class
UXScheduleDayView Class
UXScheduleWeekView Class
UXScheduleWorkWeekView Class
UXScheduleMonthView Class
Concepts
QueryDescriptor Overview
Data Access Overview
Tasks
Walkthrough: Create New ClientUI MVVM Scheduling Application (WCF RIA SP1)
Walkthrough: Create New ClientUI MVVM Scheduling Application with DevForce
Walkthrough: Bind UXScheduleView to WCF RIA Services using MVVM Pattern
Walkthrough: Bind UXScheduleView to DevForce Services using MVVM Pattern