コード例 #1
0
        private static void OnSetCommandParameterCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            XamDateNavigator dateNavigator = dependencyObject as XamDateNavigator;

            if (dateNavigator != null)
            {
                XamDateNavigatorSelectedDatesCommandBehavior behavior = GetOrCreateBehavior(dateNavigator);
                behavior.CommandParameter = e.NewValue;
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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 { }
        }
コード例 #4
0
 public static string GetSelectedDates(XamDateNavigator dateNavigator)
 {
     return(dateNavigator.GetValue(SelectedDatesProperty) as string);
 }
コード例 #5
0
 public static void SetSelectedDates(XamDateNavigator dateNavigator, object value)
 {
     dateNavigator.SetValue(SelectedDatesProperty, value);
 }
コード例 #6
0
        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);
        }
コード例 #7
0
 public static void SetCommandParameter(XamDateNavigator dateNavigator, object parameter)
 {
     dateNavigator.SetValue(CommandParameterProperty, parameter);
 }
コード例 #8
0
 public static object GetCommandParameter(XamDateNavigator dateNavigator)
 {
     return(dateNavigator.GetValue(CommandParameterProperty));
 }
コード例 #9
0
 public static void SetCommand(XamDateNavigator menuItem, ICommand command)
 {
     menuItem.SetValue(CommandProperty, command);
 }
コード例 #10
0
 public static ICommand GetCommand(XamDateNavigator dateNavigator)
 {
     return(dateNavigator.GetValue(CommandProperty) as ICommand);
 }