Example #1
0
        private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var button = (ButtonBase)d;

            if (button == null)
            {
                return;
            }

            var str = GetProperty(d);

            if (str == null)
            {
                return;
            }
            var select = WPFOperate.FindVisualParent <ListBoxItem>(button);

            var listbox = WPFOperate.FindVisualParent <ListBox>(select);

            if (listbox == null)
            {
                return;
            }
            button.DataContext = BindingEvaluator.GetValue(listbox.DataContext, str);
            button.Click      += (s2, e2) =>
            {
                var command = (ICommand)BindingEvaluator.GetValue(listbox.DataContext, str);
                if (command.CanExecute(@select.DataContext))
                {
                    command.Execute(@select.DataContext);
                }
            };
        }
Example #2
0
        private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var listBoxItem = (FrameworkElement)d;

            if (listBoxItem == null)
            {
                return;
            }
            var str     = GetProperty(d);
            var listbox = WPFOperate.FindVisualParent <ListBox>(listBoxItem);

            if (listbox == null)
            {
                return;
            }
            var dataContext = listbox.DataContext;

            listBoxItem.MouseDown += (s2, e2) =>
            {
                if (e2.ClickCount != 2)
                {
                    return;
                }
                var command = (ICommand)BindingEvaluator.GetValue(dataContext, str);
                if (command.CanExecute(listBoxItem.DataContext))
                {
                    command.Execute(listBoxItem.DataContext);
                }
            };
        }
Example #3
0
        private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var listBoxItem = (MenuItem)d;

            if (listBoxItem == null)
            {
                return;
            }


            var str     = GetJumpBinding(d);
            var listbox = WPFOperate.FindVisualParent <FrameworkElement>(listBoxItem, str.RealSource);

            if (listbox == null)
            {
                return;
            }
            var dataContext = listbox.DataContext;

            listBoxItem.Click += (s2, e2) =>
            {
                var command = (ICommand)BindingEvaluator.GetValue(dataContext, str.Property);
                if (command.CanExecute(listBoxItem.DataContext))
                {
                    command.Execute(listBoxItem.DataContext);
                }
            };
        }
Example #4
0
        private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var button      = (FrameworkElement)d;
            var prop        = GetProperty(d);
            var select      = WPFOperate.FindVisualParent <ListBoxItem>(button);
            var dataContext = select.DataContext;

            select.MouseLeftButtonUp += (s2, e2) =>
            {
                var info = dataContext.GetType().GetProperty(prop);
                var va   = (bool)info.GetValue(dataContext, new object[] {});
                va = !va;
                info.SetValue(dataContext, va, new object[] {});
            };
        }