This question is locked. New answers and comments are not allowed.
Hello all,
My special slots doesn't work. I followed your demo and I have:
In my xsml:
In the class:
and :
The only thing that I changed was the resources.
what could be wrong?
Thanks
My special slots doesn't work. I followed your demo and I have:
public RadScheduleViewControl() { InitializeComponent(); xScheduleView.Loaded += new RoutedEventHandler(xScheduleView_Loaded); this.workingHours = new ObservableCollection<Slot>(); this.readOnlySlots = new ObservableCollection<Slot>(); this.UpdateWorkingHours(); this.UpdateReadOnlySlots(); this.specialSlots = new ObservableCollection<Slot>(this.workingHours); this.specialSlots.AddRange(this.readOnlySlots); }public ObservableCollection<Slot> SpecialSlots { get { return this.specialSlots; } set { this.specialSlots = value; } } private void UpdateWorkingHours() { this.workingHours.Clear(); DateTime start = new DateTime(DateTime.Today.Year, 1, 1, 8, 0, 0); DateTime end = new DateTime(DateTime.Today.Year, 1, 1, 18, 0, 0); // Setting recurrence slot for non working hours // Week days this.workingHours.Add(new NonWorkingSlot(end, start.AddDays(1)) { RecurrencePattern = new RecurrencePattern( null, RecurrenceDays.Monday | RecurrenceDays.Tuesday | RecurrenceDays.Wednesday | RecurrenceDays.Thursday, RecurrenceFrequency.Weekly, 1, null, null) }); this.workingHours.Add( new NonWorkingSlot(end, start.AddDays(3)) { RecurrencePattern = new RecurrencePattern( null, RecurrenceDays.Friday, RecurrenceFrequency.Weekly, 1, null, null) }); } private void UpdateReadOnlySlots() { this.readOnlySlots.Clear(); Slot readOnlyslot = new Slot() { Start = DateTime.MinValue, End = DateTime.MaxValue, IsReadOnly = false }; this.readOnlySlots.Add(readOnlyslot); }In my xsml:
<UserControl x:Class="LightSwitchApplication.RadScheduleViewControl" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:telerikQuickStart="clr-namespace:Telerik.Windows.Controls.QuickStart;assembly=Telerik.Windows.Controls" xmlns:qsf="clr-namespace:Telerik.Windows.Controls.QuickStart;assembly=Telerik.Windows.Controls" xmlns:scheduleView="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.ScheduleView" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400" xmlns:localCS="clr-namespace:LightSwitchApplication" xmlns:SpecialSlots="clr-namespace:LightSwitchApplication.UserCode.SpecialSlots"> <!--xmlns:telerikQuickStart="clr-namespace:Telerik.Windows.Controls.QuickStart;assembly=Telerik.Windows.Controls">--> <!--xmlns:local="clr-namespace:Telerik.Windows.Examples.ScheduleView.Grouping.Basics"--> <telerikQuickStart:QuickStart.ExampleHeader> <TextBlock Text="Grelha de Marcações" Margin="8" /> </telerikQuickStart:QuickStart.ExampleHeader> <UserControl.Resources> <telerik:MetroColors x:Key="MetroColors"/> <telerik:MetroTheme x:Key="Theme1" /> <SolidColorBrush x:Key="AccentBrush" Color="{Binding Source={StaticResource MetroColors}, Path=Palette.AccentColor}" /> <SolidColorBrush x:Key="BasicBrush" Color="{Binding Source={StaticResource MetroColors}, Path=Palette.BasicColor}" /> <SolidColorBrush x:Key="StrongBrush" Color="{Binding Source={StaticResource MetroColors}, Path=Palette.StrongColor}" /> <SolidColorBrush x:Key="MainBrush" Color="{Binding Source={StaticResource MetroColors}, Path=Palette.MainColor}" /> <SolidColorBrush x:Key="MarkerBrush" Color="{Binding Source={StaticResource MetroColors}, Path=Palette.MarkerColor}" /> <SolidColorBrush x:Key="ValidationBrush" Color="{Binding Source={StaticResource MetroColors}, Path=Palette.ValidationColor}" /> <Style x:Key="Header" TargetType="qsf:HeaderedContentControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="qsf:HeaderedContentControl"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border Background="{StaticResource AccentBrush}"> <ContentControl FontWeight="Bold" Foreground="{StaticResource MainBrush}" Margin="8 0 0 0" VerticalAlignment="Center" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" /> </Border> <Border Grid.Row="1" BorderThickness="1 0 1 1" BorderBrush="{StaticResource BasicBrush}" Background="{StaticResource MainBrush}"> <ContentPresenter Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" /> </Border> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <LinearGradientBrush x:Key="LeftColumnBackground" EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0"> <GradientStop Color="#FF4B4B4B" Offset="1" /> <GradientStop Color="#FF6E6E6E" /> </LinearGradientBrush> <!--Special slots: read only--> <LinearGradientBrush x:Key="ReadOnlyBrush" MappingMode="Absolute" SpreadMethod="Repeat" StartPoint="0,0" EndPoint="1,1"> <LinearGradientBrush.Transform> <ScaleTransform ScaleX="3" ScaleY="3" /> </LinearGradientBrush.Transform> <GradientStop Offset="0.15" Color="#FF4040C2" /> <GradientStop Offset="0.15" Color="Black" /> </LinearGradientBrush> <SpecialSlots:SpecialSlotStyleSelector x:Key="SpecialSlotStyleSelector"> <SpecialSlots:SpecialSlotStyleSelector.NonWorkingHourStyle> <Style TargetType="telerik:HighlightItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <!--<Border Background="#4DCDCDCD"/>--> <Border Background="Black" Opacity="0.2" /> </ControlTemplate> </Setter.Value> </Setter> </Style> </SpecialSlots:SpecialSlotStyleSelector.NonWorkingHourStyle> <SpecialSlots:SpecialSlotStyleSelector.MonthViewStyle> <Style TargetType="telerik:HighlightItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Border Background="Black" Opacity="0.2" /> <!--<Border Background="Transparent" Opacity="0.4" />--> </ControlTemplate> </Setter.Value> </Setter> </Style> </SpecialSlots:SpecialSlotStyleSelector.MonthViewStyle> <SpecialSlots:SpecialSlotStyleSelector.ReadOnlyStyle> <Style TargetType="telerik:HighlightItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Border Background="Black" Opacity="0.2" /> <!--<Rectangle Opacity="0.33" Fill="{StaticResource ReadOnlyBrush}" />--> </ControlTemplate> </Setter.Value> </Setter> </Style> </SpecialSlots:SpecialSlotStyleSelector.ReadOnlyStyle> </SpecialSlots:SpecialSlotStyleSelector> </UserControl.Resources> <Grid x:Name="LayoutRoot" Background="White" > <Grid.ColumnDefinitions> <ColumnDefinition Width="180" /> <ColumnDefinition Width="2" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <telerik:RadScheduleView x:Name="xScheduleView" ShowDialog="xScheduleView_ShowDialog" AppointmentSaving="xScheduleView_AppointmentSaving" AppointmentCreated="xScheduleView_AppointmentCreated" AppointmentDeleted="xScheduleView_AppointmentDeleted" AppointmentEdited="xScheduleView_AppointmentEdited" AppointmentCreating="xScheduleView_AppointmentCreating" SpecialSlotStyleSelector="{StaticResource SpecialSlotStyleSelector}" SpecialSlotsSource="{Binding SpecialSlots}" Margin="2" Grid.Column="2" VerticalAlignment="Top" EditAppointmentDialogStyle="{StaticResource EditAppointmentDialogStyle}"> <!--<telerik:RadScheduleView.SchedulerDialogHostFactory> <localCS:SchedulerWindowFactory /> </telerik:RadScheduleView.SchedulerDialogHostFactory>--> <!--SpecialSlotStyleSelector="{StaticResource CustomSpecialSlotStyleSelector}"--> <telerik:RadScheduleView.ViewDefinitions> <telerik:DayViewDefinition FirstDayOfWeek="Sunday" DayStartTime="07:00" DayEndTime="20:00" MajorTickLength="30min" CalendarWeekRule="FirstFourDayWeek" VisibleDays="5" /> <telerik:WeekViewDefinition FirstDayOfWeek="Sunday" DayStartTime="07:00" DayEndTime="20:00" MajorTickLength="30min" CalendarWeekRule="FirstFourDayWeek" /> <telerik:MonthViewDefinition FirstDayOfWeek="Sunday" DayStartTime="07:00" DayEndTime="20:00" CalendarWeekRule="FirstFourDayWeek"/> <telerik:TimelineViewDefinition FirstDayOfWeek="Sunday" DayStartTime="07:00" DayEndTime="20:00" CalendarWeekRule="FirstFourDayWeek" Orientation="Vertical" /> </telerik:RadScheduleView.ViewDefinitions> </telerik:RadScheduleView> <Border Grid.Column="2" Margin="2 37 2 2" BorderBrush="#FFC8C6C6" BorderThickness="1 0 1 1" Grid.Row="1" /> </Grid> </UserControl> In the class:
public class SpecialSlotStyleSelector : ScheduleViewStyleSelector { private Style nonworkingHourStyle; private Style monthViewStyle; private Style readOnlyStyle; public Style NonWorkingHourStyle { get { return this.nonworkingHourStyle; } set { this.nonworkingHourStyle = value; } } public Style MonthViewStyle { get { return this.monthViewStyle; } set { this.monthViewStyle = value; } } public Style ReadOnlyStyle { get { return this.readOnlyStyle; } set { this.readOnlyStyle = value; } } public override Style SelectStyle(object item, DependencyObject container, ViewDefinitionBase activeViewDefinition) { Slot slot = item as Slot; if (slot.IsReadOnly) { return this.ReadOnlyStyle; } if (activeViewDefinition is MonthViewDefinition) { return this.MonthViewStyle; } else { if (item is NonWorkingSlot) { return this.NonWorkingHourStyle; } } return base.SelectStyle(item, container, activeViewDefinition); } }and :
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Telerik.Windows.Controls; using Telerik.Windows.Controls.ScheduleView; namespace LightSwitchApplication.UserCode.SpecialSlots { public class NonWorkingSlot : Slot { public NonWorkingSlot(DateTime start, DateTime end) : base(start, end) { this.IsReadOnly = true; //this.Resources.Add(new Resource("Serviços", "Local")); } public override Slot Copy() { Slot slot = new NonWorkingSlot(this.Start, this.End); slot.CopyFrom(this); return slot; } } }The only thing that I changed was the resources.
what could be wrong?
Thanks