Example #1
0
        public override void OnApplyTemplate()
        {
            _rootElement = GetTemplateChild(DataGridRow.DATAGRIDROW_elementRoot) as Panel;

            if (_expanderButton != null)
            {
                _expanderButton.Checked   -= ExpanderButton_Checked;
                _expanderButton.Unchecked -= ExpanderButton_Unchecked;
            }
            _expanderButton = GetTemplateChild(DATAGRIDROWGROUPHEADER_expanderButton) as ToggleButton;
            if (_expanderButton != null)
            {
                EnsureExpanderButtonIsChecked();
                _expanderButton.Checked   += new RoutedEventHandler(ExpanderButton_Checked);
                _expanderButton.Unchecked += new RoutedEventHandler(ExpanderButton_Unchecked);
            }

            _headerElement = GetTemplateChild(DataGridRow.DATAGRIDROW_elementRowHeader) as DataGridRowHeader;
            if (_headerElement != null)
            {
                _headerElement.Owner = this;
                EnsureHeaderStyleAndVisibility(null);
            }

            _indentSpacer = GetTemplateChild(DATAGRIDROWGROUPHEADER_indentSpacer) as FrameworkElement;
            if (_indentSpacer != null)
            {
                _indentSpacer.Width = _totalIndent;
            }

            _itemCountElement    = GetTemplateChild(DATAGRIDROWGROUPHEADER_itemCountElement) as TextBlock;
            _propertyNameElement = GetTemplateChild(DATAGRIDROWGROUPHEADER_propertyNameElement) as TextBlock;
            UpdateTitleElements();
        }
Example #2
0
        protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
        {
            _rootElement = e.NameScope.Find <Panel>(DataGridRow.DATAGRIDROW_elementRoot);

            _expanderButtonSubscription?.Dispose();
            _expanderButton = e.NameScope.Find <ToggleButton>(DATAGRIDROWGROUPHEADER_expanderButton);
            if (_expanderButton != null)
            {
                EnsureExpanderButtonIsChecked();
                _expanderButtonSubscription =
                    _expanderButton.GetObservable(ToggleButton.IsCheckedProperty)
                    .Skip(1)
                    .Subscribe(v => OnExpanderButtonIsCheckedChanged(v));
            }

            _headerElement = e.NameScope.Find <DataGridRowHeader>(DataGridRow.DATAGRIDROW_elementRowHeader);
            if (_headerElement != null)
            {
                _headerElement.Owner = this;
                EnsureHeaderVisibility();
            }

            _indentSpacer = e.NameScope.Find <Control>(DATAGRIDROWGROUPHEADER_indentSpacer);
            if (_indentSpacer != null)
            {
                _indentSpacer.Width = _totalIndent;
            }

            _itemCountElement    = e.NameScope.Find <TextBlock>(DATAGRIDROWGROUPHEADER_itemCountElement);
            _propertyNameElement = e.NameScope.Find <TextBlock>(DATAGRIDROWGROUPHEADER_propertyNameElement);
            UpdateTitleElements();
        }
        private void RowInsert_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DataGridRowHeader header  = UIHelper.FindVisualParent <DataGridRowHeader>(sender as FrameworkElement);
            DataGridRow       gridRow = UIHelper.FindVisualParent <DataGridRow>(header);
            int row = (gridRow as DataGridRow).GetIndex();

            Command.SpreadsheetAddRow.Execute(row, this);
        }
        private void RowText_Loaded(object sender, RoutedEventArgs e)
        {
            SpreadsheetHeaderText textBox = sender as SpreadsheetHeaderText;
            DataGridRowHeader     header  = UIHelper.FindVisualParent <DataGridRowHeader>(sender as FrameworkElement);
            DataGridRow           gridRow = UIHelper.FindVisualParent <DataGridRow>(header);
            int row = (gridRow as DataGridRow).GetIndex();

            textBox.data = data.rowDatas[row];
        }
        private void RowExpression_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DataGridRowHeader header = UIHelper.FindVisualParent <DataGridRowHeader>(sender as FrameworkElement);
            SpreadsheetHeaderExpressionText expressionTextBox = UIHelper.FindVisualChild <SpreadsheetHeaderExpressionText>(header);

            Dispatcher.BeginInvoke(DispatcherPriority.Input,
                                   new Action(delegate()
            {
                expressionTextBox.GetFocusBack();
            }));
        }
        private void RowExpression_GotFocus(object sender, RoutedEventArgs e)
        {
            SpreadsheetHeaderExpressionText expressionTextBox = sender as SpreadsheetHeaderExpressionText;
            DataGridRowHeader header  = UIHelper.FindVisualParent <DataGridRowHeader>(sender as FrameworkElement);
            DataGridRow       gridRow = UIHelper.FindVisualParent <DataGridRow>(header);
            TextBox           textBox = UIHelper.FindVisualChild <TextBox>(header);
            int row = (gridRow as DataGridRow).GetIndex();

            // TODO: there should be better way to hide the text than cleaning the header,
            // it's a workaround to fix the blank glitch if the expressionText contains variable
            //textBox.Visibility = Visibility.Hidden;
            gridRow.Header = "";
        }
        private void RowExpression_LostFocus(object sender, RoutedEventArgs e)
        {
            SpreadsheetHeaderExpressionText expressionTextBox = sender as SpreadsheetHeaderExpressionText;
            DataGridRowHeader header  = UIHelper.FindVisualParent <DataGridRowHeader>(sender as FrameworkElement);
            DataGridRow       gridRow = UIHelper.FindVisualParent <DataGridRow>(header);
            TextBox           textBox = UIHelper.FindVisualChild <TextBox>(header);
            int row = (gridRow as DataGridRow).GetIndex();

            string expression = expressionTextBox.GetExpression();

            data.SetRowExpression(row, expression);

            expressionTextBox.UpdateDisplay();
            expressionTextBox.Visibility = Visibility.Hidden;
            //textBox.Visibility = Visibility.Visible;
            UpdateRow(row);
        }
        public IConnectable GetConnector(string variableId)
        {
            if (DataHelper.IsSpreadsheetRangeId(variableId))
            {
                return(this);
            }
            else
            {
                string[] components = variableId.Split('_');
                if (components.Length == 3)
                {
                    // cell
                    SpreadsheetComponentCell cell = GetComponentCell(variableId);
                    if (cell != null)
                    {
                        return(cell.textBox);
                    }
                }
                else if (components.Length == 2)
                {
                    // column / row header
                    if (components[1][0] == 'c')
                    {
                        // column header
                        DataGridColumnHeader header = GetColumnHeader(variableId);
                        if (header != null)
                        {
                            return(UIHelper.FindVisualChild <SpreadsheetHeaderExpressionText>(header));
                        }
                    }
                    else if (components[1][0] == 'r')
                    {
                        // row header
                        DataGridRowHeader header = GetRowHeader(variableId);
                        if (header != null)
                        {
                            return(UIHelper.FindVisualChild <SpreadsheetHeaderExpressionText>(header));
                        }
                    }
                }
            }

            return(null);
        }
        private void RowText_LostFocus(object sender, RoutedEventArgs e)
        {
            TextBox           textBox = sender as TextBox;
            DataGridRowHeader header  = UIHelper.FindVisualParent <DataGridRowHeader>(sender as FrameworkElement);
            DataGridRow       gridRow = UIHelper.FindVisualParent <DataGridRow>(header);
            int    row      = (gridRow as DataGridRow).GetIndex();
            string autoName = GetRowName(row);

            // if textbox is same as automated name, remove the label instead
            if (textBox.Text != autoName)
            {
                data.RenameRow(row, textBox.Text);
            }
            else
            {
                data.RenameRow(row, null);
            }
            UpdateRow(row);
            textBox.IsReadOnly = true;
        }
Example #10
0
 public static IObservable <EventPattern <DragEventArgs> > DropObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <DragEventHandler, DragEventArgs>(h => This.Drop += h, h => This.Drop -= h));
 }
Example #11
0
 public static IObservable <EventPattern <RequestBringIntoViewEventArgs> > RequestBringIntoViewObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <RequestBringIntoViewEventHandler, RequestBringIntoViewEventArgs>(h => This.RequestBringIntoView += h, h => This.RequestBringIntoView -= h));
 }
Example #12
0
 public static IObservable <EventPattern <TouchEventArgs> > PreviewTouchUpObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <EventHandler <TouchEventArgs>, TouchEventArgs>(h => This.PreviewTouchUp += h, h => This.PreviewTouchUp -= h));
 }
Example #13
0
 public static IObservable <EventPattern <MouseButtonEventArgs> > PreviewMouseUpObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <MouseButtonEventHandler, MouseButtonEventArgs>(h => This.PreviewMouseUp += h, h => This.PreviewMouseUp -= h));
 }
Example #14
0
 public static IObservable <EventPattern <MouseButtonEventArgs> > MouseDownObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <MouseButtonEventHandler, MouseButtonEventArgs>(h => This.MouseDown += h, h => This.MouseDown -= h));
 }
Example #15
0
 public static IObservable <EventPattern <RoutedEventArgs> > LostFocusObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <RoutedEventHandler, RoutedEventArgs>(h => This.LostFocus += h, h => This.LostFocus -= h));
 }
Example #16
0
        /// <summary>
        /// Builds the visual tree for the column header when a new template is applied.
        /// </summary>
        protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
        {
            RootElement = e.NameScope.Find <Panel>(DATAGRIDROW_elementRoot);
            if (RootElement != null)
            {
                EnsureBackground();
                UpdatePseudoClasses();
            }

            bool updateVerticalScrollBar = false;

            if (_cellsElement != null)
            {
                // If we're applying a new template, we  want to remove the cells from the previous _cellsElement
                _cellsElement.Children.Clear();
                updateVerticalScrollBar = true;
            }

            _cellsElement = e.NameScope.Find <DataGridCellsPresenter>(DATAGRIDROW_elementCells);
            if (_cellsElement != null)
            {
                _cellsElement.OwningRow = this;
                // Cells that were already added before the Template was applied need to
                // be added to the Canvas
                if (Cells.Count > 0)
                {
                    foreach (DataGridCell cell in Cells)
                    {
                        _cellsElement.Children.Add(cell);
                    }
                }
            }

            _detailsElement = e.NameScope.Find <DataGridDetailsPresenter>(DATAGRIDROW_elementDetails);
            if (_detailsElement != null && OwningGrid != null)
            {
                _detailsElement.OwningRow = this;
                if (ActualDetailsVisibility && ActualDetailsTemplate != null && _appliedDetailsTemplate == null)
                {
                    // Apply the DetailsTemplate now that the row template is applied.
                    SetDetailsVisibilityInternal(ActualDetailsVisibility, raiseNotification: _detailsVisibilityNotificationPending, animate: false);
                    _detailsVisibilityNotificationPending = false;
                }
            }

            _bottomGridLine = e.NameScope.Find <Rectangle>(DATAGRIDROW_elementBottomGridLine);
            EnsureGridLines();

            _headerElement = e.NameScope.Find <DataGridRowHeader>(DATAGRIDROW_elementRowHeader);
            if (_headerElement != null)
            {
                _headerElement.Owner = this;
                if (Header != null)
                {
                    _headerElement.Content = Header;
                }
                EnsureHeaderStyleAndVisibility(null);
            }

            //The height of this row might have changed after applying a new style, so fix the vertical scroll bar
            if (OwningGrid != null && updateVerticalScrollBar)
            {
                OwningGrid.UpdateVerticalScrollBar();
            }
        }
Example #17
0
 public static IObservable <EventPattern <TouchEventArgs> > TouchLeaveObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <EventHandler <TouchEventArgs>, TouchEventArgs>(h => This.TouchLeave += h, h => This.TouchLeave -= h));
 }
Example #18
0
 public static IObservable <EventPattern <ManipulationBoundaryFeedbackEventArgs> > ManipulationBoundaryFeedbackObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <EventHandler <ManipulationBoundaryFeedbackEventArgs>, ManipulationBoundaryFeedbackEventArgs>(h => This.ManipulationBoundaryFeedback += h, h => This.ManipulationBoundaryFeedback -= h));
 }
Example #19
0
 public static IObservable <EventPattern <ManipulationInertiaStartingEventArgs> > ManipulationInertiaStartingObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <EventHandler <ManipulationInertiaStartingEventArgs>, ManipulationInertiaStartingEventArgs>(h => This.ManipulationInertiaStarting += h, h => This.ManipulationInertiaStarting -= h));
 }
Example #20
0
 public static IObservable <EventPattern <DependencyPropertyChangedEventArgs> > FocusableChangedObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <DependencyPropertyChangedEventHandler, DependencyPropertyChangedEventArgs>(h => This.FocusableChanged += h, h => This.FocusableChanged -= h));
 }
Example #21
0
 public static IObservable <EventPattern <EventArgs> > InitializedObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <EventHandler, EventArgs>(h => This.Initialized += h, h => This.Initialized -= h));
 }
Example #22
0
 public static IObservable <EventPattern <DragEventArgs> > PreviewDragLeaveObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <DragEventHandler, DragEventArgs>(h => This.PreviewDragLeave += h, h => This.PreviewDragLeave -= h));
 }
Example #23
0
 public static IObservable <EventPattern <GiveFeedbackEventArgs> > GiveFeedbackObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <GiveFeedbackEventHandler, GiveFeedbackEventArgs>(h => This.GiveFeedback += h, h => This.GiveFeedback -= h));
 }
Example #24
0
 public static IObservable <EventPattern <ContextMenuEventArgs> > ContextMenuClosingObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <ContextMenuEventHandler, ContextMenuEventArgs>(h => This.ContextMenuClosing += h, h => This.ContextMenuClosing -= h));
 }
Example #25
0
 public static IObservable <EventPattern <ManipulationCompletedEventArgs> > ManipulationCompletedObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <EventHandler <ManipulationCompletedEventArgs>, ManipulationCompletedEventArgs>(h => This.ManipulationCompleted += h, h => This.ManipulationCompleted -= h));
 }
Example #26
0
 public static IObservable <EventPattern <SizeChangedEventArgs> > SizeChangedObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <SizeChangedEventHandler, SizeChangedEventArgs>(h => This.SizeChanged += h, h => This.SizeChanged -= h));
 }
Example #27
0
 public static IObservable <EventPattern <RoutedEventArgs> > UnloadedObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <RoutedEventHandler, RoutedEventArgs>(h => This.Unloaded += h, h => This.Unloaded -= h));
 }
Example #28
0
 public static IObservable <EventPattern <ToolTipEventArgs> > ToolTipClosingObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <ToolTipEventHandler, ToolTipEventArgs>(h => This.ToolTipClosing += h, h => This.ToolTipClosing -= h));
 }
 /// <summary>
 /// AutomationPeer for DataGridRowHeader
 /// </summary>
 /// <param name="owner">DataGridRowHeader</param>
 public DataGridRowHeaderAutomationPeer(DataGridRowHeader owner)
     : base(owner)
 {
 }
Example #30
0
 public static IObservable <EventPattern <QueryContinueDragEventArgs> > QueryContinueDragObserver(this DataGridRowHeader This)
 {
     return(Observable.FromEventPattern <QueryContinueDragEventHandler, QueryContinueDragEventArgs>(h => This.QueryContinueDrag += h, h => This.QueryContinueDrag -= h));
 }