private static void OnSetCommandParameterCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { XamDateNavigator dateNavigator = dependencyObject as XamDateNavigator; if (dateNavigator != null) { XamDateNavigatorSelectedDatesCommandBehavior behavior = GetOrCreateBehavior(dateNavigator); behavior.CommandParameter = e.NewValue; } }
public CalendarGroup() { InitializeComponent(); //workaround for XAML build error in Core 3 XamDateNavigator dateNav = new XamDateNavigator(); dateNav.Margin = new Thickness(5); dateNav.HighlightDayCriteria = HighlightDayCriteria.DaysWithActivity; dateNav.Background = new SolidColorBrush(Colors.Transparent); Binding dataManagerBinding = new Binding(); dataManagerBinding.Source = DataContext; dataManagerBinding.Path = new PropertyPath("DataManager"); dateNav.SetBinding(XamDateNavigator.DataManagerProperty, dataManagerBinding); Binding selectedDatesBinding = new Binding(); selectedDatesBinding.Source = DataContext; selectedDatesBinding.Path = new PropertyPath("SelectedDates"); dateNav.SetBinding(XamDateNavigatorProperties.SelectedDatesProperty, selectedDatesBinding); Binding commandBinding = new Binding(); commandBinding.Source = DataContext; commandBinding.Path = new PropertyPath("DateNavigatorSelectedDatesCommand"); EventToCommand eventToCommand = new EventToCommand(); eventToCommand.EventArgsConverter = new DateNavigatorSelectedDatesConverter(); BindingOperations.SetBinding(eventToCommand, EventToCommand.CommandProperty, commandBinding); var triggers = Interaction.GetTriggers(dateNav); var eventTrigger = new System.Windows.Interactivity.EventTrigger() { EventName = "SelectedDatesChanged" }; eventTrigger.Actions.Add(eventToCommand); triggers.Add(eventTrigger); _dateNavigatorPlaceholder.Children.Add(dateNav); }
private static void OnSelectedDatesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (e.NewValue == null) { return; } XamDateNavigator dateNavigator = (XamDateNavigator)d; try { dateNavigator.SelectedDates.Clear(); var dates = (ObservableCollection <DateTime>)e.NewValue; foreach (var date in dates) { dateNavigator.SelectedDates.Add(date); } } catch { } }
public static string GetSelectedDates(XamDateNavigator dateNavigator) { return(dateNavigator.GetValue(SelectedDatesProperty) as string); }
public static void SetSelectedDates(XamDateNavigator dateNavigator, object value) { dateNavigator.SetValue(SelectedDatesProperty, value); }
private static XamDateNavigatorSelectedDatesCommandBehavior GetOrCreateBehavior(XamDateNavigator dateNavigator) { XamDateNavigatorSelectedDatesCommandBehavior behavior = dateNavigator.GetValue(DateNavigatorSelectedDatesProperty) as XamDateNavigatorSelectedDatesCommandBehavior; if (behavior == null) { behavior = new XamDateNavigatorSelectedDatesCommandBehavior(dateNavigator); dateNavigator.SetValue(DateNavigatorSelectedDatesProperty, behavior); } return(behavior); }
public static void SetCommandParameter(XamDateNavigator dateNavigator, object parameter) { dateNavigator.SetValue(CommandParameterProperty, parameter); }
public static object GetCommandParameter(XamDateNavigator dateNavigator) { return(dateNavigator.GetValue(CommandParameterProperty)); }
public static void SetCommand(XamDateNavigator menuItem, ICommand command) { menuItem.SetValue(CommandProperty, command); }
public static ICommand GetCommand(XamDateNavigator dateNavigator) { return(dateNavigator.GetValue(CommandProperty) as ICommand); }