public void CellEdited(ICellHandler cell, sw.FrameworkElement element) { var dataCell = element.GetParent <swc.DataGridCell>(); var dataRow = element.GetParent <swc.DataGridRow>(); var row = dataRow.GetIndex(); var dataItem = element.DataContext; GridHandler.CellEdited(row, dataCell.Column, dataItem); }
public static object FindNameRecursive(this FrameworkElement element, string name) { FrameworkElement rootVisual = element.GetRootVisual(); if (rootVisual == null) { return(null); } return(rootVisual.FindName(name)); #if FALSE while (element != null) { object value = element.FindName(name); if (value != null) { return(value); } element = element.GetParent(); } return(null); #endif }
public static sw.Window GetParentWindow(this sw.FrameworkElement element) { var window = element.GetParent <sw.Window>(); if (window == null) { var app = sw.Application.Current; window = app.MainWindow ?? (app.Windows.Count > 0 ? app.Windows[0] : new sw.Window()); } return(window); }
private static TooltipPopup GetOrCreateTooltipPopup (FrameworkElement control) { var window = control.GetParent<Window>(); if (window == null) return null; TooltipPopup popup = GetTooltipPopup(window); if (popup == null) { popup = new TooltipPopup { Owner = window }; SetTooltipPopup(window, popup); window.LocationChanged += UpdatePopup; window.SizeChanged += UpdatePopup; } return popup; }
protected override void CancelCellEdit(sw.FrameworkElement editingElement, object uneditedValue) { var handler = Handler; var cell = editingElement?.GetParent <swc.DataGridCell>(); var args = GetEditArgs(handler, cell, editingElement); if (handler != null && args != null) { args.SetIsEditing(false); cell.IsEditing = false; handler.Callback.OnCancelEdit(handler.Widget, args); } if (args?.Handled != true && editingElement.IsKeyboardFocusWithin) { editingElement.GetVisualParent <swc.DataGrid>()?.Focus(); } }
protected override object PrepareCellForEdit(sw.FrameworkElement editingElement, sw.RoutedEventArgs editingEventArgs) { var obj = base.PrepareCellForEdit(editingElement, editingEventArgs); var handler = Handler; var cell = editingElement?.GetParent <swc.DataGridCell>(); var args = GetEditArgs(handler, cell, editingElement); if (handler != null && args != null) { args.SetIsEditing(true); handler.Callback.OnBeginEdit(handler.Widget, args); } if (args?.Handled != true && !cell.IsKeyboardFocusWithin) { // default implementation is to focus the cell's control editingElement.Focus(); editingElement.MoveFocus(new swi.TraversalRequest(swi.FocusNavigationDirection.First)); } return(obj); }
protected override bool CommitCellEdit(sw.FrameworkElement editingElement) { var result = base.CommitCellEdit(editingElement); var handler = Handler; var cell = editingElement?.GetParent <swc.DataGridCell>(); var args = GetEditArgs(handler, cell, editingElement); if (handler != null && args != null) { args.SetIsEditing(false); cell.IsEditing = false; handler.Callback.OnCommitEdit(handler.Widget, args); } if (args?.Handled != true && editingElement.IsKeyboardFocusWithin) { // default implementation is to move focus back to the grid var grid = editingElement.GetVisualParent <swc.DataGrid>(); grid?.Focus(); } handler?.ContainerHandler.CellEdited(handler, editingElement); return(true); }