Registering this event when drawing Polyline
private void techpolyline_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
MapPolyline rightClickPolyline;
ContextMenu mainMenu = new ContextMenu();
mainMenu.Background =
Brushes.LightBlue;
mainMenu.Height = 50;
mainMenu.Width = 120;
MenuItem baseItem = new MenuItem();
baseItem.Width = 120;
baseItem.Header =
"Select Action";
baseItem.Background =
Brushes.Blue;
baseItem.Foreground =
Brushes.White;
baseItem.FontWeight =
FontWeights.Bold;
mainMenu.Items.Add(baseItem);
MenuItem hidepolygonItem = new MenuItem();
hidepolygonItem.Width = 120;
hidepolygonItem.Header =
"Hide Polyline";
mainMenu.Items.Add(hidepolygonItem);
//hidepolygonItem.PreviewMouseLeftButtonDown +=new MouseButtonEventHandler(hidepolygonItem_PreviewMouseLeftButtonDown);
if (sender.GetType() == typeof(MapPolyline))
{
rightClickPolyline = (
MapPolyline)sender;
rightClickPolyline.ContextMenu = mainMenu;
}
}
<Window x:Class="WpfApplication1.MainWindow" Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"> <Grid> <DockPanel Name="LayoutRoot" /> <MediaElement Canvas.Left="20" Canvas.Top="40" Name="VideoControl" LoadedBehavior="Play" UnloadedBehavior="Stop" /> <telerik:RadButton telerik:StyleManager.Theme="Transparent" Content="Close" Height="Auto" HorizontalAlignment="Left" Margin="26,199,0,0" Name="PlayButton" VerticalAlignment="Top" Width="Auto" Click="PlayButton_Click" Visibility="Visible" /> </Grid></Window>namespace WpfApplication1{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { bool fullscreen = false; InitializeComponent(); VideoControl.Volume = 100; VideoControl.MouseMove += delegate { //fullscreen mode if (!fullscreen) { //LayoutRoot.Children.Remove(VideoControl); //this.Content = VideoControl; this.WindowStyle = WindowStyle.None; this.WindowState = WindowState.Maximized; VideoControl.Width = 1850; VideoControl.Height = 1850; } else { //non fullscreen mode //this.Content = LayoutRoot; //LayoutRoot.Children.Add(VideoControl); this.WindowStyle = WindowStyle.SingleBorderWindow; this.WindowState = WindowState.Normal; VideoControl.Width = 1000; VideoControl.Height = 1000; } fullscreen = !fullscreen; }; } private void Window_Loaded(object sender, RoutedEventArgs e) { VideoControl.Source = new Uri("C:\\Users\\Public\\Videos\\Sample Videos\\Wildlife.wmv"); } private void PlayButton_Click(object sender, RoutedEventArgs e) { //VideoControl.Play(); Close(); } }}DataLoadMode="Asynchronous"
ScrollMode="Deferred"
EnableRowVirtualization="True"<Telerik:RadGridView x:Name="ResultGrid" Grid.Row="1" VerticalAlignment="Stretch" CanUserReorderColumns="False" AutoGenerateColumns="False" Height="Auto" ScrollMode="Deferred" DataLoadMode="Asynchronous" EnableRowVirtualization="True" ShowGroupPanel="False" Margin="2" IsReadOnly="True" BorderThickness="2"> <Telerik:RadGridView.ChildTableDefinitions> <Telerik:GridViewTableDefinition > </Telerik:GridViewTableDefinition> </Telerik:RadGridView.ChildTableDefinitions> <Telerik:RadGridView.Columns> <Telerik:GridViewDataColumn Header="Mission" DataMemberBinding="{Binding MissionName, Mode=OneWay}" IsReadOnly="True"/> <Telerik:GridViewDataColumn Header="Antenna" DataMemberBinding="{Binding AntennaName, Mode=OneWay}" IsReadOnly="True"/> </Telerik:RadGridView.Columns> <Telerik:RadGridView.HierarchyChildTemplate> <DataTemplate> <Telerik:RadGridView x:Name="ResultGridChild" CanUserFreezeColumns="False" AutoGenerateColumns="True" ItemsSource="{Binding Locations}" ShowGroupPanel="False" IsReadOnly="True" IsFilteringAllowed="False" CanUserDeleteRows="False" CanUserInsertRows="False" CanUserResizeColumns="False" CanUserReorderColumns="False" CanUserSelect="False" CanUserSortColumns="False"> <Telerik:RadGridView.Columns> <Telerik:GridViewDataColumn DataMemberBinding="{Binding Latitude}" Header="Latitude" /> <Telerik:GridViewDataColumn DataMemberBinding="{Binding Longitude}" Header="Longitude" /> <Telerik:GridViewDataColumn DataMemberBinding="{Binding Longitude}" Header="Altitude" /> <Telerik:GridViewDataColumn DataMemberBinding="{Binding Value}" Header="Value" /> </Telerik:RadGridView.Columns> </Telerik:RadGridView> </DataTemplate> </Telerik:RadGridView.HierarchyChildTemplate></Telerik:RadGridView>Stacktrace :
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at Telerik.Windows.Data.Expressions.FilterDescriptorExpressionBuilder.CreateValueExpression(Type targetType, Object value, CultureInfo culture)
at CustomFilterDescriptor.CreateFilterExpression(ParameterExpression parameterExpression) in \CustomFilterDescriptor.cs:line 45
at Telerik.Windows.Data.FilterDescriptorBase.CreateFilterExpression(Expression instance)
at Telerik.Windows.Data.Expressions.FilterDescriptorCollectionExpressionBuilder.CreateBodyExpression()
at Telerik.Windows.Data.Expressions.FilterExpressionBuilder.CreateFilterExpression()
at Telerik.Windows.Data.QueryableExtensions.Where(IQueryable source, CompositeFilterDescriptorCollection filterDescriptors)
at Telerik.Windows.Data.QueryableCollectionView.CreateView()
at Telerik.Windows.Data.QueryableCollectionView.get_QueryableView()
at Telerik.Windows.Data.QueryableCollectionView.CreateInternalList()
at Telerik.Windows.Data.QueryableCollectionView.EnsureInternalList()
at Telerik.Windows.Data.QueryableCollectionView.get_InternalList()
at Telerik.Windows.Data.QueryableCollectionView.get_InternalCount()
at Telerik.Windows.Data.QueryableCollectionView.get_IsEmpty()
at Telerik.Windows.Data.QueryableCollectionView.InitializeCurrencyOnRefresh()
at Telerik.Windows.Data.QueryableCollectionView.RefreshOverride()
at Telerik.Windows.Data.QueryableCollectionView.RefreshInternal()
at Telerik.Windows.Data.QueryableCollectionView.RefreshOrDefer()
at Telerik.Windows.Data.QueryableCollectionView.InvalidatePagingAndRefresh()
at Telerik.Windows.Data.QueryableCollectionView.OnFilterDescriptorsItemChanged(Object sender, ItemChangedEventArgs`1 e)
at Telerik.Windows.Data.ObservableItemCollection`1.RaiseGenericItemChanged(ItemChangedEventArgs`1 e)
at Telerik.Windows.Data.ObservableItemCollection`1.OnItemChanged(ItemChangedEventArgs`1 e)
at Telerik.Windows.Data.ObservableItemCollection`1.OnItemPropertyChanged(Object sender, PropertyChangedEventArgs e)
at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
at Telerik.Windows.Data.DescriptorBase.OnPropertyChanged(PropertyChangedEventArgs args)
at Telerik.Windows.Data.DescriptorBase.OnPropertyChanged(String propertyName)
at CustomFilterDescriptor.set_FilterValue(String value) in CustomFilterDescriptor.cs:line 32
at FilterValueTextChanged(Object sender, TextChangedEventArgs e) in MyClass.xaml.cs:line 43
at System.Windows.Controls.TextChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.Controls.Primitives.TextBoxBase.OnTextChanged(TextChangedEventArgs e)
at System.Windows.Controls.Primitives.TextBoxBase.OnTextContainerChanged(Object sender, TextContainerChangedEventArgs e)
at System.Windows.Controls.TextBox.OnTextContainerChanged(Object sender, TextContainerChangedEventArgs e)
at System.Windows.Documents.TextContainerChangedEventHandler.Invoke(Object sender, TextContainerChangedEventArgs e)
at System.Windows.Documents.TextContainer.EndChange(Boolean skipEvents)
at System.Windows.Documents.TextContainer.System.Windows.Documents.ITextContainer.EndChange(Boolean skipEvents)
at System.Windows.Documents.TextRangeBase.EndChange(ITextRange thisRange, Boolean disableScroll, Boolean skipEvents)
at System.Windows.Documents.TextRange.System.Windows.Documents.ITextRange.EndChange(Boolean disableScroll, Boolean skipEvents)
at System.Windows.Documents.TextRange.ChangeBlock.System.IDisposable.Dispose()
at System.Windows.Documents.TextEditorTyping.DoTextInput(TextEditor This, String textData, Boolean isInsertKeyToggled, Boolean acceptControlCharacters)
at System.Windows.Documents.TextEditorTyping.TextInputItem.Do()
at System.Windows.Documents.TextEditorTyping.ScheduleInput(TextEditor This, InputItem item)
at System.Windows.Documents.TextEditorTyping.OnSpace(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
at System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
at System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
at System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
at System.Windows.Input.CommandManager.TranslateInput(IInputElement targetElement, InputEventArgs inputEventArgs)
at System.Windows.UIElement.OnKeyDownThunk(Object sender, KeyEventArgs e)
at System.Windows.Input.KeyEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawKeyboardActions actions, Int32 scanCode, Boolean isExtendedKey, Boolean isSystemKey, Int32 virtualKey)
at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
at System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(MSG& msg, Boolean& handled)
at System.Windows.Interop.HwndSource.WeakEventPreprocessMessage.OnPreprocessMessage(MSG& msg, Boolean& handled)
at System.Windows.Interop.ThreadMessageEventHandler.Invoke(MSG& msg, Boolean& handled)
at System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
Any idea ?
Thanks by advance.
Xavier
I have a work around solution to change the background colour of the selected date. Please if anyone can improve the code or have a better solution can please update me.
XAML Code
<Window x:Class="TelerikDateSelectCal.Window1" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:telerikQuickStart="clr-namespace:Telerik.Windows.Controls.QuickStart;assembly=Telerik.Windows.Controls" xmlns:local="clr-namespace:TelerikDateSelectCal" Title="Window1" Height="300" Width="552" xml:lang="en-GB"> <Window.Resources> <local:CustomTemplateSelector x:Key="WorksDiaryDayTemplateSelector"> <local:CustomTemplateSelector.SelectedRed> <DataTemplate> <Border Background="Red" Width="20"> <TextBox Background="Transparent" Text="{Binding Text}" BorderThickness="0"/> </Border> </DataTemplate> </local:CustomTemplateSelector.SelectedRed> <local:CustomTemplateSelector.SelectedGreen> <DataTemplate> <Border Background="Green" Width="20"> <TextBox Background="Transparent" Text="{Binding Text}" BorderThickness="0"/> </Border> </DataTemplate> </local:CustomTemplateSelector.SelectedGreen> <local:CustomTemplateSelector.SelectedBlue> <DataTemplate> <Border Background="Blue" Width="20"> <TextBox Background="Transparent" Text="{Binding Text}" BorderThickness="0"/> </Border> </DataTemplate> </local:CustomTemplateSelector.SelectedBlue> <local:CustomTemplateSelector.SelectedYellow> <DataTemplate> <Border Background="Yellow" Width="20"> <TextBox Background="Transparent" Text="{Binding Text}" BorderThickness="0"/> </Border> </DataTemplate> </local:CustomTemplateSelector.SelectedYellow> <local:CustomTemplateSelector.SelectedBlank> <DataTemplate x:Name="Test"> <TextBox Background="Transparent" Text="{Binding Text}" BorderThickness="0" Width="20"/> </DataTemplate> </local:CustomTemplateSelector.SelectedBlank> </local:CustomTemplateSelector> </Window.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="20*"/> </Grid.ColumnDefinitions> <Grid Grid.Column="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="20*"/> </Grid.ColumnDefinitions> <StackPanel Grid.Column="0"> <Button Name="btnRed" Width="20" Height="20" Margin="3" Background="Red" Click="SetComboOpen"/> <Button Name="btnGreen" Width="20" Height="20" Margin="3" Background="Green" Click="SetComboOpen"/> <Button Name="btnBlue" Width="20" Height="20" Margin="3" Background="Blue" Click="SetComboOpen"/> <Button Name="btnYellow" Width="20" Height="20" Margin="3" Background="Yellow" Click="SetComboOpen"/> <TextBox Margin="4" Name="txt1" Height="50" BorderBrush="BlueViolet" TextWrapping="Wrap" Width="150"></TextBox> </StackPanel> <StackPanel Grid.Column="1"> <ComboBox Name="cmbRed" Width="175" Margin="2" DropDownClosed="SetCacBackColor" > <ComboBoxItem>Red</ComboBoxItem> </ComboBox> <ComboBox Name="cmbGreen" Width="175" Margin="2" DropDownClosed="SetCacBackColor"> <ComboBoxItem>Green</ComboBoxItem> </ComboBox> <ComboBox Name="cmbBlue" Width="175" Margin="2" DropDownClosed="SetCacBackColor"> <ComboBoxItem>Blue</ComboBoxItem> </ComboBox> <ComboBox Name="cmbYellow" Width="175" Margin="2" DropDownClosed="SetCacBackColor"> <ComboBoxItem>Yellow</ComboBoxItem> </ComboBox> </StackPanel> </Grid> <telerik:RadCalendar x:Name="calendar" Grid.Column="1" Margin="2" SelectionMode="Single" IsTodayHighlighted="True" ViewsHeaderVisibility="Collapsed" Culture="en-GB" Rows="3" Columns="4" SelectionChanged="calendar_SelectionChanged" DayTemplateSelector="{StaticResource WorksDiaryDayTemplateSelector}"/> </Grid> </Window> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Telerik; using Telerik.Windows.Controls; using Telerik.Windows.Controls.Calendar; using System.ComponentModel; using System.Collections.ObjectModel; using System.Data; #if !SILVERLIGHT using SelectionChangedEventArgs = System.Windows.Controls.SelectionChangedEventArgs; using DataTemplateSelector = System.Windows.Controls.DataTemplateSelector; #endif namespace TelerikDateSelectCal { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { List<DateTime> lstRedDate; List<DateTime> lstGreenDate; List<DateTime> lstBlueDate; List<DateTime> lstYellowDate; public Window1() { InitializeComponent(); lstRedDate = new List<DateTime>(); lstGreenDate = new List<DateTime>(); lstBlueDate = new List<DateTime>(); lstYellowDate = new List<DateTime>(); setAllComboENFalse(); this.cmbRed.IsEnabled = true; setSelectedDateGlbColor("Red"); } private void SetCacBackColor(object sender, EventArgs e) { } private void SetComboOpen(object sender, RoutedEventArgs e) { setAllComboENFalse(); string selecteColor = ""; if (sender == btnRed) { this.cmbRed.IsEnabled = true; selecteColor = "Red"; } else if (sender == btnGreen) { this.cmbGreen.IsEnabled = true; selecteColor = "Green"; } else if (sender == btnBlue) { this.cmbBlue.IsEnabled = true; selecteColor = "Blue"; } else if (sender == btnYellow) { this.cmbYellow.IsEnabled = true; selecteColor = "Yellow"; } setSelectedDateGlbColor(selecteColor); } protected void setSelectedDateGlbColor(string selectedColorName) { if (Application.Current.Properties.Contains("SelectedColor")) Application.Current.Properties.Remove("SelectedColor"); Application.Current.Properties.Add("SelectedColor", selectedColorName); } protected void setAllComboENFalse() { this.cmbRed.IsEnabled = false; this.cmbGreen.IsEnabled = false; this.cmbBlue.IsEnabled = false; this.cmbYellow.IsEnabled = false; } private void calendar_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (Application.Current.Properties.Contains("SelectedColor")) { string selectedColor = Application.Current.Properties["SelectedColor"].ToString(); switch (selectedColor) { case "Red": lstRedDate.Add((DateTime)calendar.SelectedDate.Value); if (Application.Current.Properties.Contains("RedColor")) Application.Current.Properties.Remove("RedColor"); Application.Current.Properties.Add("RedColor", lstRedDate); break; case "Green": lstGreenDate.Add((DateTime)calendar.SelectedDate.Value); if (Application.Current.Properties.Contains("GreenColor")) Application.Current.Properties.Remove("GreenColor"); Application.Current.Properties.Add("GreenColor", lstGreenDate); break; case "Blue": lstBlueDate.Add((DateTime)calendar.SelectedDate.Value); if (Application.Current.Properties.Contains("BlueColor")) Application.Current.Properties.Remove("BlueColor"); Application.Current.Properties.Add("BlueColor", lstBlueDate); break; case "Yellow": lstYellowDate.Add((DateTime)calendar.SelectedDate.Value); if (Application.Current.Properties.Contains("YellowColor")) Application.Current.Properties.Remove("YellowColor"); Application.Current.Properties.Add("YellowColor", lstYellowDate); break; default: MessageBox.Show("Invalid Date Color....", "Message....", MessageBoxButton.OK, MessageBoxImage.Exclamation); break; } DateTime tempDate; tempDate = new DateTime(calendar.DisplayDate.Year, calendar.DisplayDate.Month, 1); calendar.DisplayDate = tempDate.AddYears(8); calendar.DisplayDate = tempDate; } else { MessageBox.Show("Please Select a date Color ", "Message....", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } } [Serializable()] public class CustomTemplateSelector : DataTemplateSelector { // ObservableCollection<Object> listTabsValue = new ObservableCollection<object>(); public override DataTemplate SelectTemplate(object item, DependencyObject container) { CalendarButtonContent content = item as CalendarButtonContent; string daySelColorFlg = ""; List<DateTime> lstDtRed = (List<DateTime>)Application.Current.Properties["RedColor"]; List<DateTime> lstDtGreen = (List<DateTime>)Application.Current.Properties["GreenColor"]; List<DateTime> lstDtBlue = (List<DateTime>)Application.Current.Properties["BlueColor"]; List<DateTime> lstDtYellow = (List<DateTime>)Application.Current.Properties["YellowColor"]; if (Application.Current.Properties.Contains("SelectedColor")) { daySelColorFlg = Application.Current.Properties["SelectedColor"].ToString(); } else return SelectedBlank ; if (content.ButtonType == CalendarButtonType.Date || content.ButtonType == CalendarButtonType.TodayDate) { switch (daySelColorFlg) { case "Red": if (lstDtRed != null) { if (lstDtRed.Contains(content.Date)) return SelectedRed; else if (lstDtGreen != null || lstDtBlue != null || lstDtYellow != null) { if(lstDtGreen != null) if (lstDtGreen.Contains(content.Date)) return SelectedGreen; if (lstDtBlue != null) if (lstDtBlue.Contains(content.Date)) return SelectedBlue; if (lstDtYellow != null) if (lstDtYellow.Contains(content.Date)) return SelectedYellow; } else return SelectedBlank; } else return SelectedBlank; break; case "Green": if (lstDtGreen != null) { if (lstDtGreen.Contains(content.Date)) return SelectedGreen; else if (lstDtRed != null || lstDtBlue != null || lstDtYellow != null) { if (lstDtRed != null) if (lstDtRed.Contains(content.Date)) return SelectedRed; if (lstDtBlue != null) if (lstDtBlue.Contains(content.Date)) return SelectedBlue; if (lstDtYellow != null) if (lstDtYellow.Contains(content.Date)) return SelectedYellow; } else return SelectedBlank; } else return SelectedBlank; break; case "Blue": if (lstDtBlue != null) { if (lstDtBlue.Contains(content.Date)) return SelectedBlue; else if (lstDtRed != null || lstDtGreen != null || lstDtYellow != null) { if (lstDtRed != null) if (lstDtRed.Contains(content.Date)) return SelectedRed; if (lstDtGreen != null) if (lstDtGreen.Contains(content.Date)) return SelectedGreen; if (lstDtYellow != null) if (lstDtYellow.Contains(content.Date)) return SelectedYellow; } else return SelectedBlank; } else return SelectedBlank; break; case "Yellow": if (lstDtYellow != null) { if (lstDtYellow.Contains(content.Date)) return SelectedYellow; else if (lstDtRed != null || lstDtGreen != null || lstDtBlue != null) { if (lstDtRed != null) if (lstDtRed.Contains(content.Date)) return SelectedRed; if (lstDtGreen != null) if (lstDtGreen.Contains(content.Date)) return SelectedGreen; if (lstDtBlue != null) if (lstDtBlue.Contains(content.Date)) return SelectedBlue; } else return SelectedBlank; } else return SelectedBlank; break; default: break; } } return SelectedBlank; } public DataTemplate SelectedRed { get; set; } public DataTemplate SelectedBlue { get; set; } public DataTemplate SelectedGreen { get; set; } public DataTemplate SelectedYellow { get; set; } public DataTemplate SelectedBlank { get; set; } } } Not best of the code, it's too lengthy and needs improvement so please le me know if you have improved it.
Thanks
Rahul