Пример #1
0
 void IVirtualizedItemProvider.Realize()
 {
     if (this.OwningDataGrid != null)
     {
         OwningDataGrid.ScrollIntoView(null, Column);
     }
 }
 void IValueProvider.SetValue(string value)
 {
     if (_column.IsReadOnly)
     {
         throw new InvalidOperationException(SR.Get(SRID.DataGrid_ColumnIsReadOnly));
     }
     if (this.OwningDataGrid != null)
     {
         OwningDataGrid.SetCellAutomationValue(Item, _column, value);
     }
 }
        // Invoking DataGrid item should commit the item if it is in edit mode
        // or BeginEdit if item is not in edit mode
        void IInvokeProvider.Invoke()
        {
            EnsureEnabled();

            if (OwningRowPeer == null)
            {
                OwningDataGrid.ScrollIntoView(_item);
            }

            var success = false;

            if (OwningRow != null)
            {
                IEditableCollectionView iecv = OwningDataGrid.Items;
                if (iecv.CurrentEditItem == _item)
                {
                    success = OwningDataGrid.CommitEdit();
                }
                else
                {
                    if (OwningDataGrid.Columns.Count > 0)
                    {
                        var cell = OwningDataGrid.TryFindCell(_item, OwningDataGrid.Columns[0]);
                        if (cell != null)
                        {
                            OwningDataGrid.UnselectAll();
                            cell.Focus();
                            success = OwningDataGrid.BeginEdit();
                        }
                    }
                }
            }

            // Invoke on a NewItemPlaceholder row creates a new item.
            // BeginEdit on a NewItemPlaceholder row returns false.
            if (!success && !IsNewItemPlaceholder)
            {
                throw new InvalidOperationException(SR.Get(SRID.DataGrid_AutomationInvokeFailed));
            }
        }
 void IVirtualizedItemProvider.Realize()
 {
     OwningDataGrid.ScrollIntoView(Item, _column);
 }
 void IScrollItemProvider.ScrollIntoView()
 {
     OwningDataGrid.ScrollIntoView(_item);
 }